在我的项目中,我的设计在安卓HTC 2.3.4上运行良好,但在4.0.1版本上,我的屏幕没有显示完整(一些设计从底部被剪切了)。为什么会这样?
在我的项目中,我的设计在安卓HTC 2.3.4上运行良好,但在4.0.1版本上,我的屏幕没有显示完整(一些设计从底部被剪切了)。为什么会这样?
由于您没有发布任何代码,我将为您简要介绍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将根据设备自动选择最佳的布局和图像组合。例如,对于高分辨率中等大小的设备,将向用户显示layout-medium和高密度图像。
请确保为所有这些组合创建模拟器并彻底测试您的应用程序。这里是更多信息的官方文档:
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"
在您的清单中选择要在哪些屏幕尺寸上提供应用程序。但是,如果用户拥有不同尺寸的屏幕,则无法从商店下载该应用程序。