我制作了一个具有多种布局的应用程序来定位智能手机和平板电脑等多种设备。
目前,我有以下文件夹来区分这些设备:
解决方案很好,但我对HTC Desire等旧智能手机的问题还是在Android 2.2或2.3中。
他们的屏幕尺寸类别是正常的,密度是hdpi所以三星Galaxy Nexus与资源中的限定符有任何区别。
由于Android的版本是2.2或2.3,我无法使用新资源限定符来显示屏幕尺寸。因此,我不知道如何使用限定符专门针对这些设备,以便在屏幕为4英寸以上的智能手机和其他屏幕小于4英寸的智能手机之间使用不同的布局。
有人对解决方案有任何想法吗?
先谢谢。
西尔。
答案 0 :(得分:2)
提供多种布局的一些要点
更好的做法是放置以下drawables
// for Phones
drawable-ldpi
drawable-mdpi
drawable-hdpi
drawable-xhdpi
//for 7 inch tablets
drawable-large-mdpi
drawable-large-hdpi(for Nexus 7)
// for 10 inch tablets
drawable-xlarge-mdpi
支持Android平板电脑是IMO的一项地狱工作。因为有这么多设备,每个设备都有自己的分辨率和密度。您无法定位所有设备。
Nexus 7案例:即使Nexus 7是7英寸平板电脑,它的分辨率 1280 * 800 。所以它是hdpi
设备。但普通的7英寸设备具有较低的分辨率 1024 * 600 。因此它们是mdpi
设备,并且drawable限定符可以更改。 (根据我自己的经验,首先为7英寸设备放置一个drawable-large-mdpi
文件夹并在Nexus 7上查看。如果图像没有问题,则不必放入另一个文件夹。因为如果没有特定文件夹,Android将检查最近的可能文件夹并针对设备屏幕进行优化。)
现在提供layout-sw<>dp
属性的问题是
答案 1 :(得分:0)
最后(和有价值的)提示:
按SIZE整理您的布局,绝不是DENSITY。使用dp和sp单位,绝不使用像素。
通过DENSITY组织您的drawables,从不SIZE。如果你使用9-pacthes,也可以为mdpi,hdpi,xhdpi,xxhdpi提供替代密度。