簡體   English   中英

如何為Android項目生成具有不同分辨率的圖像?

[英]How generate images with different resolution for android project?

我有很多xhdpi分辨率的圖像。 現在我需要相同的圖像,但是分辨率為mdpi,ldpi,hdpi。 我認為這個過程可以自動化。 那么,生成具有不同分辨率的圖像的最佳方法是什么?

嘗試使用:

http://android-ui-utils.googlecode.com/hg/asset-studio/dist/index.html

這有助於產生資源。 希望能幫助到你!

該過程已經自動化。 如果您僅提供一種尺寸-hdpi適用於我-那么Android系統將根據其他屏幕分辨率和尺寸的需要調整其大小或重新縮放。

不提供不同大小的圖像的缺點是自動調整大小算法可能無法像圖形設計師那樣出色地工作。 但是,如果您正在尋找一種非Android算法來進行大小調整,誰又說它會比內置算法更好呢?

我建議在各種設備上嘗試一種尺寸,然后查看圖形外觀。 有些圖像會比其他圖像更好地縮放,因此您可能只需要提供幾個的倍數即可。

不久之前,我需要在Java中調整Image的大小,為此我找到了一個很好的方法,它返回了bufferedimage的類型,您將不得不使用該新實例。 您可以指定寬度和高度。 這是代碼:

public BufferedImage resizeImage(final Image image, int width, int height) {
        final BufferedImage bufferedImage = new BufferedImage(width, height,
                BufferedImage.TYPE_INT_RGB);
        final Graphics2D graphics2D = bufferedImage.createGraphics();
        graphics2D.setComposite(AlphaComposite.Src);
        graphics2D.drawImage(image, 0, 0, width, height, null);
        graphics2D.dispose();

        return bufferedImage;
    }

僅以較高的分辨率(例如xhdpi或hdpi)放入1張圖像並將其用於所有比例是沒有效率的,因為android確實對其進行了調整以適應其大小,但它仍將原始尺寸的圖像加載到內存中,因此這將導致如果您在1個活動中有很多延遲或內存不足錯誤。

我會使用谷歌推薦的位圖圖像加載器。

http://developer.android.com/training/displaying-bitmaps/load-bitmap.html#decodeSampledBitmapFromResource

這使您可以拍攝圖像,並調整其大小,同時僅將新圖像尺寸加載到內存中。 如果要“延遲加載”,這也是您要執行的方法。

我選擇處理所有可繪制對象的解決方案如下:

1-在您的應用程序項目的/ etc文件夾中具有高分辨率的所有圖形。 對於高分辨率,我選擇了默認分辨率(mdpi)的10倍。 因此,例如啟動器圖標可繪制對象(48dip x 48dip,以mdpi為48 x 48像素)將為480 x 480像素。 我在/ etc文件夾中擁有所有高分辨率的可繪制對象。

2-在構建時,我的ant腳本將從/ etc中提取所有可繪制對象,並調整它們的大小以填充所有/ res / drawables- *文件夾。 從100%尺寸的可繪制高分辨率圖像來看,各種分辨率的尺寸為:ldpi:7.5%,mdpi:10%,hdpi:15%,xhdpi:20%,xxhdpi:30%

我使用由ant啟動的外部程序來實際進行大小調整。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM