我们在页面布局的时候,经常会设置容器的长度,但是到底该使用哪个作为长度的单位而懊恼

Android中支持的描述大小区域的类型有以下几种。

px(pixels)——像素:不同的设备显示效果相同,一般我们HVGA代表320x480像素,这个用的比较多。

dip(device independent pixels)——设备独立像素:这个和设备硬件有关,一般哦我们为了支持WCGAHVGAQVGA推荐使用这个,不依赖于像素。等同于dp

sp(scaled pixelsbest for text size)——带比例的像素。

pt(points)——磅:1pt = 1/72英寸

in(inches)——英寸

mm(millimeters)——毫米

到底px和dip有什么区别呢?

dip!= px

主要是针对不同设备而言的
在Density是160的设备上,比如用AVDManager创建的默认模拟器,dip和px是一样的
但是如果同样的代码,换到不同Density的设备上,比如换到一个Density是240的设备上,dip和px体现出来的大小就不一样了
px不管在什么样的设备上都是那样长,但是dip会根据设备变化

WQVGA屏density=120;QVGA屏density=120;HVGA屏density=160;WVGA屏density=240;

density值表示每英寸有多少个显示点,与分辨率是两个概念。

当屏幕density=240时使用hdpi标签的资源

当屏幕density=160时,使用mdpi标签的资源

当屏幕density=120时,使用ldpi标签的资源。

不加任何标签的资源是各种分辨率情况下共用的。

布局时尽量使用单位dip,少使用px

换算公式为 pixs =dips * (densityDpi/160).

dips=(pixs*160)/densityDpi

如何获得设备的屏幕分辨率和屏幕密度:

如分辨率为480*800,密度为240的设备

DisplayMetrics dm =getResources().getDisplayMetrics();

dm.densityDpi=240

dm.widthPixels=480

dm.heightPixels=800

更多相关文章

  1. Android输入法遮盖输入框(屏幕底部输入框不能往上弹)
  2. Android(安卓)API Guides---Migrating to WebView in Android(安
  3. Android(安卓)中 如何利用am input 命令做自动压力测试
  4. Android应用基础浅析
  5. 学徒浅析Android——Android(安卓)8.0(O)后台服务的限制和变化
  6. android 屏幕尺寸适配实现方案
  7. 详解Android(安卓)8.0以上系统应用如何保活
  8. ADB使用方法及常用命令
  9. Android引导界面设计之ParallaxViewPager视差效果

随机推荐

  1. android webview加载网页不显示图片问题
  2. Android(安卓)Intent实现页面跳转
  3. android备份服务流程
  4. android 关于使用retrofit2.0的一些问题
  5. Android之Volley框架加载网络图片的三种
  6. Android应用如何获取版本号
  7. Android经典底部选项卡集成方式之一
  8. Android利用ffmpeg做视频裁剪
  9. Android(安卓)6.0系统新特性及功能说明
  10. Intellij IDEA android-x86开发