2013-05-09 145 views
0

我是相當有經驗的Android開發人員,但我有非常容易的問題。 如何在Android中正確製作全屏圖像? 目前,我正在使用一個質量更好的圖像並將其用於所有設備。這工作相當不錯,但在非常小的設備上降低播放效果看起來很糟糕,並且可能會導致OOM錯誤。Android全屏圖像

有關於它的線程數,例如:

但在我看來,答案是不正確的。 大家都說我應該使用ldpi,mdpi,hdpi,xhdpi文件夾,並且我同意這適用於小圖像(按鈕,開關),九個補丁,您希望在每個屏幕上具有相同物理大小的東西。 當涉及到全屏時,這是錯誤的。我的HTC Desire(480x800)是hdpi,我的三星Galaxy Tab 2(800x1280)是mdpi。使用上述建議會導致Galaxy Tab 2使用比HTC Desire更小的圖像,這是非常錯誤的。

有沒有簡單的方法來解決這個全屏圖像問題?

在此先感謝

回答

1

你應該使用小正常大XLARGE預選賽。 您甚至可以混合使用多個限定符,例如:drawable-small-hdpi或drawable-small-mdpi並且擁有正確的圖像。

+1

我真的在想它,但那意味着我必須複製圖像。例如,相同的中間分辨率圖像將處於大型mdpi和普通型hdpi。這會導致APK增長。這個APK將由一些舊的,小的HTC野火與小應用程序的免費內存下載。這是否意味着我還必須爲不同的設備製作不同的apks以使其完美? – Mark 2013-05-09 10:57:57

+0

如果你想要它是完美的,是的。但我幾乎不認爲這是必要的。看看這個圖表:http://developer.android.com/about/dashboards/index.html#Screens 你會看到,大mdpi是2.9%的用戶,而正常的hdpi是37%,所以避免一些大小密度組合並不常見。 – 2013-05-09 11:23:50

+0

我正在考慮更多關於小/ ldpi(10%)的不同apk以便這些小設備不會下載和安裝不需要 - 高分辨率圖像 – Mark 2013-05-09 11:41:09

1

一種選擇是自己(Get screen dimensions in pixels)確定的屏幕尺寸,然後從中挑選您所使用的圖像:

Display display = getWindowManager().getDefaultDisplay(); 
Point size = new Point(); 
display.getSize(size); 
int width = size.x; 
int height = size.y; 

// Stuff 
if  (width < /*some number*/)  putLowResFullScreenImage(); 
else if (width < /* a bigger number*/) putMidResFullScreenImage(); 
else         putHighResFullScreenImage(); 
+0

我知道我可以製作一個代碼解決方案,但是在有更多圖像的情況下,這會開始變得很痛苦:)但是現在當我認爲這可能比正常的hdpi更好時,大型mdpi文件夾,因爲我不會不必複製資源 - 在不同名稱的no-dpi文件夾中只有很少的資源。 – Mark 2013-05-09 11:04:23

+0

我認爲我已閱讀(但我無法再找到它),我們可以期待未來的Android版本解決此問題。如果我找到鏈接,我會將其添加到答案中。 – 2013-05-09 11:13:21