Android多分辨率适配

1.dp、dip、sp、px


dp和dip一个意思,密度无关像素,在Android中,规定以160dp为基准,1dp=1px,如果密度是320dp,则1dp=2px;屏幕分辨率是指在横纵向上的像素点数, 单位是px,1px=1个像素点;sp是字体单位,如果密度是320dp,则1sp=2px;。写布局单位时用dp,如果是高度或宽度为一个单位的一条线时,用px,这样可减少模糊感。dp与屏幕尺寸和px有关, 在单一变化条件下,屏幕尺寸越小、px越高,dp越大,反之越小。换算代码如下:

 /**
  * 转换px为sp
  */
 public static int px2sp(Context context, float pxValue) {
     float fontScale = context.getResources().getDisplayMetrics().scaledDensity;
     return (int) (pxValue / fontScale + 0.5f);
 }
  /**
   * 转换px为dp
   */
  public static int px2dp(Context context, int px) {
      float scale = context.getResources().getDisplayMetrics().density;
      return (int) (px / scale + 0.5f;
  }
2.mdpi、hdpi、xhdpi、xxhdpi、xxxhdpi

用来修饰Android中的drawable(mipmap)文件夹及values文件夹,用来区分不同像素密度下的图片和dimen值。 imageimage 
为了减少UI的工作量,只提供一套图,为了在各种分辨率下图片不失真,按照最高分辨率(主流1080p)提供图片,根据现在手机市场状况(主流像素密度在320dp-480dp) ,放在xxhdpi里面,对于可能造成拉伸的图片,采用.9图片(注:xhdpi为720p,xxhdpi为1080p)。

3.layout和values

多使用相对布局RelativeLayout,少使用绝对布局,充分利用”wrap_content” 、”match_parent”以及“weight”。采用一套layout,多套values(特殊地方可以多套layout), 命名规则比如values-xhdpi、values-xxhdpi,也可以采用values-1900x1080(通知栏假设为20px,减去通知栏),本人采用的是前者。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值