基本上,应用程序应该支持各种设备。我正在使用这些指南:mult.screen.supp,screen.stat。
大多数活动的平板电脑和手机设计都很相似。令我困惑的是如何为两个版本提供drawables,因为他们的密度组提供不同的分辨率,因此drawables不可替代。
例如,比较xlarge(平板电脑) - mdpi与普通(手机) - mdpi:
所以,如果我为第一组创建foo.png(50px x 50px),然后测试相同的布局
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/foo" />
在第二组上,它将在mdpi文件夹中查找相同的图像, - 图像看起来很小。
我有一个解决方案,但我不确定我是否做得对:
<item name="foo" type="drawable">@drawable/h_foo</item>
,该文件夹引用的图像适用于normal(handset) - mdpi
分辨率h_foo,例如50x50。<item name="foo" type="drawable">@drawable/t_foo</item>
,该文件夹引用适合xlarge(tablet) - mdpi
分辨率t_foo的图片,例如150x150。你能否阐明这种方法是否合适以及其他解决方案是什么?
答案 0 :(得分:1)
最好保留相同的资源名称,只使用不同的文件夹来放置实际的png:
drawable-mdpi -> used for normal screens
drawable-large-mdpi -> used for large screens
有关可用的配置限定符,请参阅providing resources。
答案 1 :(得分:1)
为避免重复,我将所有图像保存在drawable-nodpi文件夹中,并将文件名后缀为大小(例如image-small.png,image-medium.png等)。然后我在每个项目的特定于设备(drawable-normal-mdpi,drawable-large-mdpi)文件夹中有XML定义。例如:
抽拉正常-MDPI / image.xml:
<bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:src="@drawable/image-medium" />
抽拉-大MDPI / image.xml:
<bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:src="@drawable/image-large" />
请注意,我在这里看到了一位不推荐使用此功能的Google工程师(目前无法找到)的评论,但在有人提出更好的解决方案(与旧的Android版本兼容)之前,我坚持不懈。