android适配平板设备

兼容平板可添加values-sw600dp文件夹,添加dimens.xml。
sw600dp 指最短的边的长度为600,这可作为平板的分界线,大平板一般是sw800dp。

layout-sw600dp
这里的sw代表smallwidth的意思,当你的屏幕的绝对宽度大于600dp时,屏幕就会自动调用layout-sw600dp文件夹里面的布局。
注意:这里的绝对宽度是指手机的实际宽度,即与手机是否横屏没关系,也就是手机较小的边的长度。

layout-w600dp
当你的屏幕的相对宽度大于600dp时,屏幕就会自动调用layout-w600dp文件夹里面的布局。
注意:这里的相对宽度是指手机相对放置的宽度;即当手机竖屏时,为较小边的长度;当手机横屏时,为较长边的长度。

layout-h600dp
与layout-w600dp的使用一样,只是这里指的是相对的高度。
当你的屏幕的相对高度大于600dp时,屏幕就会自动调用layout-w600dp文件夹里面的布局。
注意:这里的相对高度是指手机相对放置的高度;即当手机竖屏时,为较长边的长度;当手机横屏时,为较小边的长度。但这种方式很少使用,因为屏幕在相对高度上,即在纵向上通常能够滚动导致长度变化,而不像横向那样基本固定,因而这个方法灵活性差,google官方文档建议尽量使用这种方式。

adb shell wm size 获取分辨率1280*720
adb shell wm density 获取到dpi 为160
dpi:屏幕像素密度的单位,“dot per inch”的缩写,每英寸有160个像素

dip:Density Independent Pixels(密度无关像素)的缩写。以160dpi为基准,1dp=1px,
获取dip density比例2.0:

        DisplayMetrics dm = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(dm);
        float density = dm.density;
        Log.d("kkklzc","density: "+density);

或者通过计算获得,160dpi/160基准 得到 1.0。

720/2.0 得到sw360dp
1280720 density 2.0 sw360dp 320dpi
1280
800 density 1.0 sw800dp 160dpi
1024*600 density 1.0 sw600dp 160dpi

获取屏幕英寸,1英寸=2.54厘米:

        DisplayMetrics dm = new DisplayMetrics();
        this.getWindowManager().getDefaultDisplay().getMetrics(dm);
        double diagonalPixels = Math.sqrt(Math.pow(dm.widthPixels, 2) +   Math.pow(dm.heightPixels, 2));
        Log.d("kkklzc","英寸: "+diagonalPixels / (160 * dm.density));
密度类型代表的分辨率(px)屏幕像素密度(dpi)换算(px/dp)比例
低密度(ldpi)240x3201201dp=0.75px3
中密度(mdpi)320x4801601dp=1px4
高密度(hdpi)480x8002401dp=1.5px6
超高密度(xhdpi)720x12803201dp=2px8
超超高密度(xxhdpi)1080x19204801dp=3px12
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值