我目前正在調整我的應用程序以使用不同的設備。我遇到了舊的Nexus 7(約216 ppi像素密度)的問題。標記可供多種設備類型使用的可繪製文件夾
問題在於它在tvdpi
中查找可繪製物,未能發現它使用hdpi
資產。我希望它使用的資產是xhdpi
或xxhdpi
drawables。
有沒有辦法讓我告訴Android使用xhdpi
設備和sw600dp
設備的特定文件夾(其dp值低於xhdpi)?
我寧願避免複製粘貼drawables。
我目前正在調整我的應用程序以使用不同的設備。我遇到了舊的Nexus 7(約216 ppi像素密度)的問題。標記可供多種設備類型使用的可繪製文件夾
問題在於它在tvdpi
中查找可繪製物,未能發現它使用hdpi
資產。我希望它使用的資產是xhdpi
或xxhdpi
drawables。
有沒有辦法讓我告訴Android使用xhdpi
設備和sw600dp
設備的特定文件夾(其dp值低於xhdpi)?
我寧願避免複製粘貼drawables。
你可以做的是在dpi文件夾中使用'引用'來繪製drawable,所以你不必複製資源。
它會變得非常棘手,但一個快速的解釋是:
名稱您drwawables myDrawable-xhdpi或類似的東西,並把它們在xhdpi或無dpi的文件夾中。
然後創建資源文件夾:
價值觀tvpdi 價值觀xhpi
內這些文件夾的創建drawable.xml文件,爲每個項目繪製你想要的Nexus 7使用(你還需要在值文件夾中創建一個drawable.xml)。
的項目看起來像:
@繪製/ myDrawable-xhdpi
所有的佈局文件可以只是參考@繪製/ myDrawable。
我們正在做的是設置它,以便我們只能繪製一個drawable,但是從這些drawable.xml文件中引用drawable。當要求Android在tvpdi設備上查找myDrawable時,它將查看drawable-tvdpi文件夾,該文件夾沒有myDrawable,因此它將查找drawable.xml文件,並找到對正確的引用可繪製使用。
希望是有道理的。
查看這篇文章的更多:http://android-developers.blogspot.co.uk/2011/07/new-tools-for-managing-screen-sizes.html
我不知道我的理解。我在hdpi,xhdpi和xxhdpi文件夾中擁有不同大小的所有資產版本。如果我在tvdpi中沒有圖像,是否會在值中引用它,而不是簡單地告訴Nexus 7使用hdpi中的版本? – Bjorninn
就像你說的nexus 7是tvdpi,所以如果在tvdpi中有一個drawables.xml,nexus 7將會使用它。如果該drawabes.xml指向xhdpi文件夾中的drawable,那就是nexus 7將使用的。否則,它會使用hdpi資產。 – athor
所以,如果我有一個名爲icon_friends.png的圖像,並且我在drawable-hdpi,-xhdpi和--xhdpi(全部名爲icon_friends.png)中有不同大小的版本。我將什麼放入當前位於drawable-tvdpi中的drawables.xml中,告訴它使用xhdpi文件夾中的icon_friends.png? – Bjorninn