这似乎是widespread problem。
我有以下可绘制目录:
drwxr-xr-x 18 mike staff 612 Feb 4 17:28 drawable/
drwxr-xr-x 51 mike staff 1734 Feb 4 17:32 drawable-nodpi/
drwxr-xr-x 44 mike staff 1496 Feb 4 17:30 drawable-normal-mdpi/
我的xml可绘制资源是可绘制的。我用于大型mdpi(Dell Streak)和normal-hdpi(Droid,Nexus,Incredible等)的资源都是可绘制的nodpi。我为normal-mdpi(像G1这样的旧手机)的资源是drawable-normal-mdpi。
不幸的是,像Droid这样的普通hdpi手机正在从drawable-normal-mdpi而不是drawable-nodpi中提取资源。这可能是因为How Android Finds the Best-matching Resource中的规则。
所以问题是,我如何为像Streak这样的大型mdpi设备以及像Droid这样的普通hdpi设备以及像G1这样的普通mdpi设备提供支持?
最简单的解决方案可能是制作我的大型资源的两个副本,一个用于droid的normal-hdpi,另一个用于用于连胜的大mdpi,但我想避免重复所有这些资源。 / p>
更新
根据Mayra的建议,我可以为每个资源制作一个别名。但是,我有很多资源需要制作别名,这会使维护变成一场噩梦,所以我希望能有另一种解决方案。
答案 0 :(得分:1)
您可以使用别名资源提供指向资源的指针,而无需复制它。见Alias Resources
答案 1 :(得分:1)
将你的“drawable-nodpi”重命名为“drawable-nodpi-800x480”(nodpi需要在那里,否则它不会工作!)并且将“drawable-normal-mdpi”重命名为“可拉伸-分辨率480x320”。
答案 2 :(得分:0)
您是否尝试将HDPI资源放在drawable
文件夹而不是drawable-nodpi
?
答案 3 :(得分:0)
我问同样的question 2 days before you,最接近解决方案的是使用别名资源(通过Mayra)。我最终编写了一个python脚本来处理这个问题。这是一个非常糟糕的工作,我希望我有足够的决心创建一个更加傻瓜的解决方案。
仅供参考,共享资源属于nodpi
文件夹,因此不会被android扩展。
答案 4 :(得分:-1)
请查看本指南:http://developer.android.com/guide/practices/screens_support.html
基本上,您应该将drawables放在drawable-mdpi,drawable-hdpi等中,并将布局文件放在layout-small,layout-medium等目录中。因此,布局应依赖于屏幕尺寸,并且drawables应屏幕密度依赖。