不同的屏幕尺寸

时间:2015-12-01 04:41:06

标签: java android string performance android-layout

我查看了所有的android文档和许多堆栈溢出问题,我有一个关于支持多种屏幕大小的问题。如果我有一些drawables,我知道我需要将它们放在这样的文件夹中:

enter image description here

但是android会为我制作这些文件夹吗?当我尝试将我的图像复制并粘贴到drawable文件夹中时,我得到这样的结果:

enter image description here

没有目录名称。那么我是否必须手动制作这些目录,然后会根据屏幕尺寸自动选择要使用的正确图像吗?

我对布局有同样的问题。例如,我知道要支持许多屏幕尺寸,我需要将布局放在许多文件夹中,如下所示:

enter image description here

但是现在,我的布局是这样的:

enter image description here

所以我必须手动创建每个布局文件夹,然后将我当前的布局复制并粘贴到新的布局文件夹中,然后进入每个布局,然后渲染它直到它在XML的android设计选项卡上看起来不错? 然后,android会根据屏幕大小选择最佳布局吗?

在尝试制作新版面时,我也会这样做。要填写什么?

enter image description here 非常感谢,

由于这些问题,我一直在推迟使我的应用程序在不同的布局中兼容,我希望他们能得到答案!

2 个答案:

答案 0 :(得分:3)

您可以创建不同的布局文件夹,并为标准屏幕尺寸创建布局。有一组六个广义密度:

ldpi (low) ~120dpi
mdpi (medium) ~160dpi
hdpi (high) ~240dpi
xhdpi (extra-high) ~320dpi
xxhdpi (extra-extra-high) ~480dpi
xxxhdpi (extra-extra-extra-high) ~640dpi

您可以为这些创建图像和布局并相应地使用。在您显示的内容中:

<compatible-screens>
    <screen
        android:screenDensity="ldpi"
        android:screenSize="small" />
    <screen
        android:screenDensity="mdpi"
        android:screenSize="normal" />
    <screen
        android:screenDensity="xhdpi"
        android:screenSize="large" />
    <screen
        android:screenDensity="xhdpi"
        android:screenSize="xlarge" />        
</compatible-screens>

有关详细信息,请参阅Supporting Multiple Screens

有一些提示:

  1. 不要硬编码任何布局参数,如宽度,高度等。
  2. 不要使用“px”。使用“sp”表示字体大小,使用“dp”表示布局宽度,布局高度等。
  3. 使用RelativeLayoutLinearLayout,不要使用AbsoluteLayout,因为它已被弃用。
  4. 在布局所需的任何位置使用ScrollView,因为它支持单个视图。

答案 1 :(得分:0)

是的,您必须针对不同的屏幕尺寸制作不同的布局文件夹,例如layout-sw480dplayout-sw600dp,就像不同的屏幕尺寸和使用横向视图layout-landscape一样。并且您必须使用drawable-hdpidrawable-mdpidrawable-ldpidrawable-xhdpi等为不同的screeen分辨率设备提供不同的resoultion图像