打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Supporting
 

支持各种屏幕密度

本教程将向您介绍如何通过提供不同资源和使用独立于分辨率的测量单位来支持不同屏幕密度。

使用非密度制约像素


在设计布局时,大家经常会误使用绝对像素来定义距离或尺寸,您一定要避免犯这种错误。由于各种屏幕的像素密度都有所不同,因此相同数量的像素在不同设备上的实际大小也有所差异,这样使用像素定义布局尺寸就会产生问题。因此,请务必使用 dp 或 sp 单位指定尺寸。dp 是一种非密度制约像素,其尺寸与 160 dpi 像素的实际尺寸相同。sp 也是一种基本单位,但它可根据用户的偏好文字大小进行调整(即尺度独立性像素),因此您应将该测量单位用于定义文字大小(请勿用其定义布局尺寸)。

例如,请使用 dp(而非 px)指定两个视图间的间距:

1234
<Button android:layout_width="wrap_content"     android:layout_height="wrap_content"     android:text="@string/clickme"    android:layout_marginTop="20dp" />

请务必使用 sp 指定文字大小:

123
<TextView android:layout_width="match_parent"     android:layout_height="wrap_content"     android:textSize="20sp" />

提供备用位


由于 Android 可在具有各种屏幕密度的设备上运行,因此您提供的位图资源应始终可以满足各类普遍密度范围的要求:低密度、中等密度、高密度以及超高密度。这将有助于您的图形在所有屏幕密度上都能得到出色的质量和效果。

要生成这些图片,您应先提取矢量格式的原始资源,然后根据以下尺寸范围针对各密度生成相应的图片。

  • xhdpi:2.0
  • hdpi:1.5
  • mdpi:1.0(最低要求)
  • ldpi:0.75 也就是说,如果您为 xhdpi 设备生成了 200x200 尺寸的图片,就应该使用同一资源为 hdpi、mdpi 和 ldpi 设备分别生成 150x150、100x100 和 75x75 尺寸的图片。

然后,将生成的图片文件放在 res/ 下的相应子目录中(如下所示),系统就会根据运行您应用的设备的屏幕密度自动选择合适的图片:

 1 2 3 4 5 6 7 8 910
MyProject/ res/  drawable-xhdpi/   awesomeimage.png  drawable-hdpi/   awesomeimage.png  drawable-mdpi/   awesomeimage.png  drawable-ldpi/   awesomeimage.png
这样一来,无论您何时引用 @drawable/awesomeimage,系统都能根据相应屏幕的 dpi 选取合适的位图。

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
android 对于多分辨率屏幕的适配(二)
android屏幕自适应研究
多屏幕多分辨率的支持和一些概念
Android众说纷纭分辨率
分辨率、尺寸、分辨率密度的关系
Andriod界面设计适配和Android Studio中的资源
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服