我查看了所有的android文档和许多堆栈溢出问题,我有一个关于支持多种屏幕大小的问题。如果我有一些drawables,我知道我需要将它们放在这样的文件夹中:
但是android会为我制作这些文件夹吗?当我尝试将我的图像复制并粘贴到drawable文件夹中时,我得到这样的结果:
没有目录名称。那么我是否必须手动制作这些目录,然后会根据屏幕尺寸自动选择要使用的正确图像吗?
我对布局有同样的问题。例如,我知道要支持许多屏幕尺寸,我需要将布局放在许多文件夹中,如下所示:
但是现在,我的布局是这样的:
所以我必须手动创建每个布局文件夹,然后将我当前的布局复制并粘贴到新的布局文件夹中,然后进入每个布局,然后渲染它直到它在XML的android设计选项卡上看起来不错? 然后,android会根据屏幕大小选择最佳布局吗?
在尝试制作新版面时,我也会这样做。要填写什么?
由于这些问题,我一直在推迟使我的应用程序在不同的布局中兼容,我希望他们能得到答案!
答案 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
有一些提示:
RelativeLayout
和LinearLayout
,不要使用AbsoluteLayout
,因为它已被弃用。ScrollView
,因为它支持单个视图。答案 1 :(得分:0)
是的,您必须针对不同的屏幕尺寸制作不同的布局文件夹,例如layout-sw480dp
,layout-sw600dp
,就像不同的屏幕尺寸和使用横向视图layout-landscape
一样。并且您必须使用drawable-hdpi
,drawable-mdpi
,drawable-ldpi
,drawable-xhdpi
等为不同的screeen分辨率设备提供不同的resoultion图像