Android不同分辨率和不同密度适配

简介:

官方原文地址:http://developer.android.com/training/multiscreen/screendensities.html

本文主要介绍:
1.dip dp sp 简单用法
2.适配不同分辨率屏幕图片的处理方法

支持不同的密度或分辨率
本课介绍如何通过提供不同的资源和使用的测量分辨率独立单元支持不同屏幕密度(分辨率)

使用独立的像素密度
设计你的布局时会有一个常见的错误,你必须避免使用绝对像素来定义距离或大小。定义布局的尺寸与像素是一个问题,因为不同的屏幕有不同的像素密度,所以相同的像素数可以对应于不同的设备上不同的物理尺寸。因此,指定尺寸的时候,总是请使用DP或SP单元。一个DP是对应于一个像素的160 dpi的物理尺寸,密度无关的像素。一个sp是相同的基本单元,而是由用户首选的文本大小(它是一个独立的规模像素)的缩放,所以在定义文字大小,你应该使用这种测量单元(但从来没有为布局大小)

例如,当你指定的两个视图之间的间距,而不是使用DP PX:
(这里我感觉官方没有说清楚,控件与控件之间最好用dip来表示,而不适用dp或px)

  android:layout_height="wrap_content"  
    android:text="@string/clickme" 
    android:layout_marginTop="20dp" />


当指定文字大小,总是用SP:

    android:layout_height="wrap_content"  
    android:textSize="20sp" />
 

提供可供选择的位图
由于Android运行在与各种各样的屏幕密度的设备,你应该始终提供满足每个广义密度桶的位图资源:低,中,高和超高密度。这将帮助你实现所有的屏幕密度,良好的图形质量和性能。
要生成这些图片,你应该与你的原始资源开始在矢量格式和生成使用以下尺寸的规模各密度的图像:

xhdpi: 2.0
hdpi: 1.5
mdpi: 1.0 (baseline)
ldpi: 0.75
从上面可以看出,如果你生成一个200x200的图像xhdpi设备,你应该HDPI产生相同的资源在150×150,100×100的MDPI终于为LDPI设备一个75X75的形象。
然后,将生成的图像文件,在适当的子目录下的res /,系统会自动挑选根据您的应用程序运行在设备的屏幕密度正确的:
如下目录:
MyProject/
 res/
    drawable-xhdpi/
        awesomeimage.png
    drawable-hdpi/
        awesomeimage.png
    drawable-mdpi/
       awesomeimage.png
    drawable-ldpi/
       awesomeimage.png
然后,您引用@绘制/ awesomeimage任何时候,系统会选择基于屏幕的DPI适当的位图。
为您的应用程序创建图标的资产更多的提示和指引,看到图标设计准则。

相关文章
|
4月前
|
Web App开发 移动开发 小程序
"项目中mpaas升级到10.2.3 适配Android 14之后 app中的H5以及小程序都访问不了,
"项目中mpaas升级到10.2.3 适配Android 14之后 app中的H5以及小程序都访问不了,显示“网络不给力,请稍后再试”,预发内网版本不能使用,线上版本可以正常使用,这个是什么原因啊,是某些参数没有配置吗,还是说是一些参数改错了?
59 2
|
6月前
|
Android开发
Android 全屏适配刘海机型
Android 全屏适配刘海机型
106 0
|
4天前
|
Android开发
Android RIL 动态切换 4G 模块适配
Android RIL 动态切换 4G 模块适配
9 0
|
13天前
|
编解码 人工智能 测试技术
安卓适配性策略:确保应用在不同设备上的兼容性
【4月更文挑战第13天】本文探讨了提升安卓应用兼容性的策略,包括理解平台碎片化、设计响应式UI(使用dp单位,考虑横竖屏)、利用Android SDK的兼容工具(支持库、资源限定符)、编写兼容性代码(运行时权限、设备特性检查)以及优化性能以适应低端设备。适配性是安卓开发的关键,通过这些方法可确保应用在多样化设备上提供一致体验。未来,自动化测试和AI将助力应对设备碎片化挑战。
|
24天前
|
Android开发
Android保存图片到相册(适配android 10以下及以上)
Android保存图片到相册(适配android 10以下及以上)
22 1
|
6月前
|
安全 API 开发工具
Android14 适配之——targetSdkVersion 升级到 34 需要注意些什么?(下)
Android14 适配之——targetSdkVersion 升级到 34 需要注意些什么?(下)
357 0
|
6月前
|
存储 缓存 安全
Android14 适配之——现有 App 安装到 Android14 手机上需要注意些什么?
Android14 适配之——现有 App 安装到 Android14 手机上需要注意些什么?
268 0
|
4月前
|
Java 物联网 Android开发
Android 12 蓝牙适配 Java版(下)
Android 12 蓝牙适配 Java版(下)
|
4月前
|
传感器 Java 定位技术
Android 12 蓝牙适配 Java版(上)
Android 12 蓝牙适配 Java版(上)
171 0
|
5月前
|
小程序 开发工具 Android开发
Donut多端框架小程序打包适配ios和安卓app
腾讯新出了一个 Donut 多端框架,可以直接将微信小程序转成 ios 和 安卓 app,小程序开发者工具里也集成了 app 相关升级、调试和打包的功能,终于可以一套代码开发出3个客户端了!
127 0
Donut多端框架小程序打包适配ios和安卓app