android px dip sp等的理解

(1)density(密度)= densityDpi /160;
(2) densityDpi :每英寸多少个点,我的理解是每英寸多少个dip;
(3)dip或dp(与密度无关的像素)。这个和设备硬件有关,为了支持 WVGA、HVGA和QVGA 5进制空间推荐使用这个。一种基于屏幕密度的抽象单位。设置一些view的宽高可以用这个,一般情况下,在不同分辨率,都不会有缩放的感觉。如果用px的话,320px占满HVGA的宽度,到WVGA上就只能占一半不到的屏幕了,那一定不是你想要的;
dip可以看做是屏幕的物理尺寸,实际上不是;
(4)px (pixels)(像素):屏幕上的点 ,与密度相关。密度大了,单位面积上的px会比较多;
(5)sp(与刻度无关的像素)放大像素– 主要处理字体的大小;

DisplayMetrics metrice= new DisplayMetrics();
Display defaultDisplay = getWindowManager().getDefaultDisplay();
defaultDisplay.getMetrics(metrice);
// 由硬件设备决定该值大小
int densityDpi = metrice.densityDpi;
float density = metrice.density;
// 屏幕的分辨率
int heightPixels = metrice.heightPixels;
int widthPixels = metrice.widthPixels;
float xdpi = metrice.xdpi;
float ydpi = metrice.ydpi;
float scaledDensity = metrice.scaledDensity;

系统会根据机器的分辨率(分辨率与densityDpi相关)来分别到这几个文件夹里面去找对应的图片:
drawable-hdpi 高密度,通常是指240也就是上述代码中的densityDpi为240
drawable-ldpi 底密度,通常是指120
drawable-mdpi 中等密度,通常是指160
drawable-xhdpi 超高密度,通常是指320

分辨率的概念
现在人们经常把320*240成为 分辨率,其实是不准确的,这仅仅是图片的像素点总数罢了,分辨率的概念是每英寸上的像素点数,单位为dpi.在windows下右键属性–摘要–高级里可以查看,一般图片的dpi为96DPI。这个单位根ps下的有出入,但都是一回事。详情参见:http://www.baidu.com/link?url=P0mQdUmSUuV4qhvTgLDMJ8oHui5avC6VPvsaKU4THJIkbB37cpeylwHbZ3Xi3x4r9jUkAhmGKTudZ8hcG6HoyGhJRw2t0M-Oaem78YKmoKy

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值