如何在Android上支持不同的屏幕尺寸和不同的密度

时间:2014-05-01 12:11:35

标签: android

我知道Android中资源的<resources_name>-<qualifier>命名约定以及如何将它们用于屏幕尺寸(例如<drawable_xLarge>)或屏幕密度(例如<drawable xhdpi>)。

我想知道,如何处理支持每种屏幕尺寸变化的不同密度的情况。即

<drawable-xlarge>
    <drawable-xhpdi>
    <drawable-hpdi>
    <drawable-mpdi>
    <drawable-lpdi>

<drawable-large>
    <drawable-xhpdi>
    <drawable-hpdi>
    <drawable-mpdi>
    <drawable-lpdi>
...
可以请任何人开导我吗? 干杯

2 个答案:

答案 0 :(得分:2)

这是一个非常复杂的问题。您应该检查的文档中有一个非常好的解释。

http://developer.android.com/guide/practices/screens_support.html

否则,你的问题太开放了。

您将在文档中找到的具体段落是:

  

为不同的屏幕尺寸提供不同的布局

     

默认情况下,Android调整应用程序布局的大小以适应当前的大小   设备屏幕。在大多数情况下,这很好。在其他情况下,您的UI   可能看起来不太好,可能需要针对不同的屏幕进行调整   大小。例如,在较大的屏幕上,您可能想要调整   一些元素的位置和大小,以利用额外的   屏幕空间,或在较小的屏幕上,您可能需要调整大小   所以一切都可以放在屏幕上。

     

可用于提供特定于大小的配置限定符   资源是小的,正常的,大的和xlarge。例如,布局   对于一个超大的屏幕应该在layout-xlarge /.

中      

从Android 3.2(API级别13)开始,上面的大小组是   不推荐使用,您应该使用swdp配置   限定符,用于定义您所需的最小可用宽度   布局资源。例如,如果您的多窗格平板电脑布局   需要至少600dp的屏幕宽度,你应该把它放入   布局sw600dp /。使用新技术声明布局   资源将在“声明平板电脑”一节中进一步讨论   适用于Android 3.2的布局。

答案 1 :(得分:1)

有两种方法可以解决这个问题。

<强>第一

定义您的drawable,如下所示。

drawable-small-mdpi
drawable-normal-hdpi
drawable-large-hdpi
drawable-xlarge-hldpi

参考:Screen Compatability issue in android

<强>第二

如果您想提供密度较高的drawable,请按照以下方式进行操作。

例如,如果要将drawable设置为最小宽度600 dp,则创建名称为

的目录
drawable-sw600dp

与720 dp类似,创建名称为

的目录
drawable-sw720dp

这样您就可以定义密度明智的可绘制目录。