2014-01-21 50 views
1

我目前正在調整我的應用程序以使用不同的設備。我遇到了舊的Nexus 7(約216 ppi像素密度)的問題。標記可供多種設備類型使用的可繪製文件夾

問題在於它在tvdpi中查找可繪製物,未能發現它使用hdpi資產。我希望它使用的資產是xhdpixxhdpi drawables。

有沒有辦法讓我告訴Android使用xhdpi設備和sw600dp設備的特定文件夾(其dp值低於xhdpi)?
我寧願避免複製粘貼drawables。

回答

1

你可以做的是在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

+0

我不知道我的理解。我在hdpi,xhdpi和xxhdpi文件夾中擁有不同大小的所有資產版本。如果我在tvdpi中沒有圖像,是否會在值中引用它,而不是簡單地告訴Nexus 7使用hdpi中的版本? – Bjorninn

+0

就像你說的nexus 7是tvdpi,所以如果在tvdpi中有一個drawables.xml,nexus 7將會使用它。如果該drawabes.xml指向xhdpi文件夾中的drawable,那就是nexus 7將使用的。否則,它會使用hdpi資產。 – athor

+0

所以,如果我有一個名爲icon_friends.png的圖像,並且我在drawable-hdpi,-xhdpi和--xhdpi(全部名爲icon_friends.png)中有不同大小的版本。我將什麼放入當前位於drawable-tvdpi中的drawables.xml中,告訴它使用xhdpi文件夾中的icon_friends.png? – Bjorninn