2012-11-23 39 views
1

16個字節我有一個程序,它加載從資源文件資源(通過設置機器人:在佈局文件SRC =「@繪製/圖像」Android的位圖分配每像素

該圖像是800 x 1280像素當程序運行時,它會在堆上分配16,384,000個字節,每個像素爲16 BYTES

我認爲它應該默認爲RGB8888,每個像素只使用4個字節,任何人都知道如何將其更改爲使用較少的內存?

回答

3

您的圖像可能存儲在不合適的文件夾中如果您在低分辨率文件夾中有高分辨率圖像,請讓就是說,這些圖像是800 x 1280,並且您將它存儲爲可繪製或可繪製的hdpi,Android會將它們擴展爲匹配xhdpi(雖然它們已經在xhdpi中,可以這麼說)。縮放的圖像佔用更多內存。

解決方法,把它們放在drawable-xhdpi中。

+0

縮放到xhdpi(320dpi)的ldpi(120 dpi)不應超過2/3倍,但每像素16個字節至少是4倍。我也不確定Android是否實際縮放圖像。小圖像仍然可以繪製得比它們大。 – zapl

+0

這裏有一些數學。以mdpi分辨率爲例,320 x 480像素,xhdpi爲320 x 480:153600 * 4 = 614400 ---- 800 x 1280:1024000 * 4 = 4096000 ---- – Ixx

+0

以及4096000字節/ 614400字節= 6.66因子 – Ixx

0

您可以使用BitmapFactory,Options和inSampleSize導入它們以減少內存佔用量。

另外,這似乎是一個非常高分辨率的圖像顯示在手機屏幕上,所以你也可以減小尺寸?

+0

xhdpi手機屏幕最近可以輕鬆達到720x1280或更高,而1280x800是mdpi 10「平板電腦的標準分辨率。Nexus 10的屏幕是2560x1600; 1280x800位圖只能覆蓋該設備上四分之一的屏幕區域,根據使用的位置和方式,這個尺寸的位圖完全有效 – adamp

+0

這是完全正確的 - 一直在考慮4.7英寸手機和720x1280作爲最大顯然我需要記住平板電腦 –

+1

@MFFOX是的請:)太多的應用程序在那裏有表格的問題,它不只是令人毛骨悚然的佈局,所有需要典型手機功能的應用程序,如果他們只有一臺前置攝像頭,那麼面對攝像頭的攝像頭就不會在它們上面運行。強制使用portait模式的應用程序很煩人,因爲您必須隨時關閉大型平板電腦。通常煩人我。 – zapl

相關問題