Android 学习笔记 第五季 2 Density

来源:互联网 发布:微信页面网络出错1003 编辑:程序博客网 时间:2024/06/10 00:12

手机种类多不可数,如果才能写出高适应性的 UI 呢?

这我也不太清楚。

在第五季的第二篇,我来介绍下 density 以及相关的一些概念,希望对某些人有帮助。

首先,说下分辨率。
分辨率指的是 320*480 这种,表示设备横向有 320 个像素点,纵向有 480 个像素点。

然后,说下像素。
用设备的实际长宽除以横向和纵向的像素点个数,就能得到像素的实际长宽了。
也就是说,像素的长宽是不定的,是可能不等的。

dpi
假设实际尺寸为 1.5 2.0 英寸,分辨率 240 * 320。
则设备对角线长 2.5 英寸,对角线分辨率 400。
dip = 400/2.5 = 160 (dot per inch)。

约定,当 dpi = 160 时,density = 1。

density 和 dpi 是等比例的,当 dpi = 400 时,density 就是 2.5。


dp 是像素无关的单位, px = dp * density,

所以,有了当 dpi = 160 时,1dp = 1px 的说法。


DisplayMetrics displayMetrics = new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);Log.e("result",displayMetrics.density+"" );Log.e("result",displayMetrics.densityDpi+"" );


0 0