前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >038android初级篇之android UI中的单位

038android初级篇之android UI中的单位

作者头像
上善若水.夏
发布2018-09-28 10:47:12
4000
发布2018-09-28 10:47:12
举报
文章被收录于专栏:上善若水

Android UI设计长度单位有

代码语言:javascript
复制
px   :是屏幕的像素点
in    :英寸
mm         :毫米
pt    :磅,1/72 英寸
dp   :一个基于density的抽象单位,如果一个160dpi的屏幕,1dp=1px
dip  :Density independent pixels ,设备无关像素,等同于dp
sp   :同dp相似,但还会根据用户的字体大小偏好来缩放。
建议使用sp作为文本的单位,其它用dip(dp)

常见的屏幕的类型

不同屏幕的的不同在于:density和分辨率不同。

density值表示每英寸有多少个显示点 而分辨率表示设备长和宽上的像素的个数。

apk的资源包中,当屏幕density=240时使用hdpi标签的资源

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

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

在每英寸160点的显示器上,1dp = 1px。

针对dip和px 的关系,做以下概述:

  1. QVGA屏density=120; QVGA(240*320)
  2. HVGA屏density=160; HVGA(320*480)
  3. WVGA屏density=240; WVGA(480*800)
  4. WQVGA屏density=120 WQVGA(240*400)

下面是几种不同单位的相互转换.

代码语言:javascript
复制
public static int dip2px(Context context, float dipValue){ 
final float scale = context.getResources().getDisplayMetrics().density; 
return (int)(dipValue * scale + 0.5f); 
} 
public static int px2dip(Context context, float pxValue){ 
final float scale = context.getResource().getDisplayMetrics().density; 
return (int)(pxValue / scale + 0.5f); 
} 
public static int dip2px(Context context, float dipValue){ 
final float scale = context.getResources().getDisplayMetrics().density; 
return (int)(dipValue * scale + 0.5f); 
} 
public static int px2dip(Context context, float pxValue){ 
final float scale = context.getResource().getDisplayMetrics().density; 
return (int)(pxValue / scale + 0.5f); 
}

android中获取分辨率

代码语言:javascript
复制
DisplayMetrics metric = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metric);
int width = metric.widthPixels;  // 屏幕宽度(像素)
int height = metric.heightPixels;  // 屏幕高度(像素)
float density = metric.density;  // 屏幕密度(0.75 / 1.0 / 1.5)
int densityDpi = metric.densityDpi;  // 屏幕密度DPI(120 / 160 / 240)

参考链接

  1. android中像素单位dp、px、pt、sp的比较
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016.03.08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Android UI设计长度单位有
  • 常见的屏幕的类型
  • 下面是几种不同单位的相互转换.
  • android中获取分辨率
  • 参考链接
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档