Android : 屏幕适配

参考:

Android 屏幕适配方案

获取最小宽度DP:

DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int heightPixels = dm.heightPixels;
int widthPixels = dm.widthPixels;
float density = dm.density;
float heightDP = heightPixels / density;
float widthDP = widthPixels / density;
float smallestWidthDP = Math.min(widthDP, heightDP);//411.42856
Log.e(TAG, "heightPixels================= " + heightPixels);
Log.e(TAG, "widthPixels================= " + widthPixels);
Log.e(TAG, "density================= " + density);
Log.e(TAG, "heightDP================= " + heightDP);
Log.e(TAG, "widthDP================= " + widthDP);
Log.e(TAG, "smallestWidthDP================= " + smallestWidthDP);
// heightPixels================= 752
// widthPixels================= 1280
// density================= 1.0
// heightDP================= 752.0
// widthDP================= 1280.0
// smallestWidthDP================= 752.0

dp与px 、 dpi的转换

1dp = (dpi / 160)px

Android规定

  • 当dpi=160时,1dp=1px,
  • 当dpi=240时,1dp=1.5px,

依此类推,并且给各个范围的dpi取了简易的名字加以直观的识别,如120<dpi<=160,称作为mdpi,120<dpi<=240 称作hdpi,最终形成如下规则:

  • ldpi(value <= 120 dpi)
  • mdpi(120 dpi < value <= 160 dpi)
  • hdpi(160 dpi < value <= 240 dpi)
  • xhdpi(240 dpi < value <= 320 dpi)
  • xxhdpi(320 dpi < value <= 480 dpi)
  • xxxhdpi(480 dpi < value <= 640 dpi)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

不同分辨率单位转换

ldpi  240*320  1dp=0.75px

mdpi  320*480  1dp=1px

hdpi  480*800  1dp=1.5px

xhdpi  720*1280  1dp=2px

xxhdpi 1080*1920 1dp=3px

图片大小与分辨率的研究:
https://github.com/Ablexq/MyBitmapSize

参考:
Android AutoLayout全新的适配方式 堪称适配终结者

Android开发:最全面、最易懂的Android屏幕适配解决方案

Android屏幕适配全攻略(最权威的官方适配指导)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值