在我的项目中,我的设计在我的 android HTC 2.3.4 中运行良好,但在 4.0.1 上我的屏幕没有显示完整(一些设计从底部切割)。为什么?
3 回答
由于您尚未发布任何代码,我将简要介绍一下 android 布局和资源。
您必须为您的应用程序创建多个资源。Android 有 4 种分辨率(ldpi、mdpi、hdpi 和 xhdpi)和 4 种通用屏幕尺寸(小、中、大和特大)。因此,您必须制作 4 种布局(如果您不打算支持平板电脑,则必须制作 3 种布局,因为平板电脑属于超大类别)以支持屏幕尺寸。
这是一个一般指南:
将小、中、大和特大的布局放在 res/ 文件夹中,如下所示:
res/layout/sample_layout.xml // default layout
res/layout-small/sample_layout.xml // layout for small screen size
res/layout-large/sample_layout.xml // layout for large screen size
res/layout-xlarge/sample_layout.xml // layout for extra large screen size
你也可以使用
res/layout-land/sample_layout.xml
适用于所有屏幕尺寸的横向,或者您可以将特定屏幕尺寸的横向布局定位为res/layout-medium-land/sample_layout.xml
请注意,所有布局都具有相同的名称。
准备好布局后,还需要注意图像分辨率
再次在您的 res/ 文件夹中添加如下图像:
res/drawable-ldpi/sample_image.png // low density
res/drawable-mdpi/sample_image.png // medium density
res/drawable-hdpi/sample_image.png // high density
res/drawable-xhdpi/sample_image.png // extra high density
再一次,所有图像都具有相同的名称。
设计图像的一般准则是:
ldpi is 0.75x dimensions of mdpi
hdpi is 1.5x dimensions of mdpi
xhdpi is 2x dimensinons of mdpi
通常,我为 320x480 屏幕设计 mdpi 图像,然后按照上述规则将尺寸相乘以获得其他分辨率的图像。
Android 将根据设备自动选择布局和图像的最佳组合。例如,对于高分辨率中等尺寸设备,将向用户显示布局中等和高密度的图像。
确保为所有这些组合创建模拟器并彻底测试您的应用程序。这是官方文档以获取更多信息:
https://developer.android.com/guide/practices/screens_support.html
在这里,我向您发送了有关设备屏幕和密度的文档,它将帮助您了解哪个设备将从哪个文件夹中获取图像...!
一种布局并不总是适用于所有不同的屏幕尺寸。由于 android 至少有 4 种不同的屏幕尺寸(小、中、大、特大),您要么需要以智能的方式使用 dp(像素密度),要么为每个屏幕分辨率设置不同的布局(我个人推荐)
您这样做的方法是为您想要的每种布局类型创建文件夹,如下所示。引用自http://developer.android.com/guide/practices/screens_support.html:例如,以下是应用程序中的资源目录列表,该应用程序为不同的屏幕尺寸和不同的位图可绘制介质提供不同的布局设计,高和超高密度屏幕。
res/layout/my_layout.xml // 正常屏幕尺寸的布局(“默认”)
res/layout-small/my_layout.xml // 小屏幕布局
res/layout-large/my_layout.xml // 大屏幕布局
res/layout-xlarge/my_layout.xml // 超大屏幕的布局
res/layout-xlarge-land/my_layout.xml // 横向超大布局
你也可以只使用
<supports-screens android:smallScreens="false"
在您的清单中,以便选择您希望它在哪些屏幕尺寸上可用。但是如果他们有不同尺寸的屏幕,人们将根本无法从商店下载它