這是不同密度管理的常見錯誤,所以這些就是你的問題的答案。
1.-不,您的資產的存儲方式是,「只有當您的資產處於當前密度的較低層級時」,例如:如果您的資產是可繪製的(默認非特定密度),並且drawable-ldpi並且您在中密度設備中運行應用程序,操作系統將嘗試將-ldpi中的圖像調整爲您的密度(如果在圖像中使用dps但會花費內存)。操作系統處理資產的方式如下:
比方說你有:
res-
-drawable
-icon.png
-drawable-ldpi
-icon.png
-drawable-mdpi
-icon.png
如果你是在一個高密度的設備上運行的應用程序的操作系統首先將嘗試找到drawable-您的資產hdpi,但由於它不存在,它將開始向下層次直到它找到它,所以在這種情況下,它不會在drawable-hdpi中找到它,但會在drawable-mdpi中找到它,並將使用它來填充,一切都會好起來的,但是會記住資產密度的不同。
現在你有確切的錯誤來玩當操作系統出現故障的資產文件夾層次結構,去到最後,不找到,例如什麼:
比方說你有:
res-
-drawable-hdpi
-icon.png
如果你運行這個應用程序,在高Desnity設備它將運行完美,因爲會發現資產在第一次嘗試,並永遠不會下來的層次結構,同樣的情況超高密度設備,因爲如果它沒有找到它在drawable-xhdpi它會在下一步找到它時,沿着層次結構繪製hdpi並且工作得很好,但是對於中等密度,首先它會嘗試在drawable-mdpi中找到它,因爲它不在那裏,會下降並嘗試在drawable-ldpi中找到它,因此它將轉到「default(drawable)」,這是一個很好的做法平均大小的所有資產至少使應用程序看起來比崩潰模糊,因爲操作系統將無法找到資產或BOOOM沒有資源找到,那麼你有你的例外,這種機制幾乎適用於Android的任何資源
2.-是的,您必須在ldpi中創建您的資產,並將它們存儲在drawable-ldpi或drawable(默認 - 無密度)中,以使其看起來不錯。
所有這些信息都是從書中提取出來的,如果您仍然有疑問,請在Eclipse中創建一個空的Android項目,並注意SDK如何在每個密度中創建一個具有特定大小的icon_launcher.png img以正確處理問題。根據我的經驗,我發現我始終都很注重所有密度,但更重要的是將所有資產的平均密度/質量都放在默認文件夾中,以避免出現這種確切問題,以防您可能在過程中忘記一個密度發展,比崩潰更好地模糊資產。
希望這有助於。
問候!
當你可能已經定義了一種屏幕大小的佈局並錯過了爲ldpi的定義它時,你會得到一個資源未找到 –