android api 17 之前如何获取屏幕,Android 获取屏幕尺寸

本文介绍了两种在Android中获取屏幕尺寸的方法,并详细解释了px和dip之间的转换,以及分辨率和dpi的概念。推荐使用DisplayMetrics获取屏幕尺寸,并提供了px转dip和dip转px的函数。同时,讨论了Android针对不同密度的资源适配策略。
摘要由CSDN通过智能技术生成

有两种方式:

方式一:(可以使用,但是已经不推荐使用了)

WindowManager mWindowManager;

mWindowManager = (WindowManager) this.getSystemService(Context.WINDOW_SERVICE);

mWindowManager.getDefaultDisplay().getWidth();

mWindowManager.getDefaultDisplay().getHeight()

方式二:(目前android推荐使用的方式)

WindowManager mWindowManager = (WindowManager) this.getSystemService(Context.WINDOW_SERVICE);

DisplayMetrics metrics = new DisplayMetrics();

mWindowManager.getDefaultDisplay().getMetrics(metrics);

int width = metrics.widthPixels;//获取到的是px,像素,绝对像素,需要转化为dpi

int height = metrics.heightPixels;

px与dpi的相互转化

px描述:The absolute height of the display in pixels.

px(pixels)像素,是屏幕的绝对像素,屏幕有多少个像素就是多少像素.

dip(device independent pixel)设备独立像素,与像素无关 .

fun pxToDip(scale: Float, px: Int): Int {

return (px / scale + 0.5f) as Int

}

fun dipToPx(scale: Float, dpi: Int): Int {

return (dpi * scale + 0.5f) as Int

}

总结:

densityDpi 每英寸多少个像素点,

density = densityDpi /160

APP根据densityDpi的大小决定调用哪个文件夹下的图片,关系如下:

drawable-ldpi 底密度,通常是指120

drawable-mdpi 中等密度,通常是指160

drawable-xhdpi 超高密度,通常是指320

px = dip*density

分辨率的概念

现在人们经常把320*240成为 分辨率,其实是不准确的,这仅仅是图片的像素点总数罢了,分辨率的概念是每英寸上的像素点数,单位为dpi.

一般图片的dpi为96DPI。这个单位与ps下的有出入,但都是一回事。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值