android的px,dip,dpi,像素

px: 像素,就是屏幕上实际的像素点单位。

dip:或者dp, (device independent pixels)设备独立像素, 与设备屏幕有关。

sp: (scaled pixels — best for text size):类似dp, 主要处理字体的大小。

dpi(dot per inch):屏幕像素密度,每英寸多少像素

density:density表示每英寸有多少个显示点(逻辑值),它的单位是dpi

常见的density有下面几种:

HVGA屏density=160;QVGA屏density=120;WVGA屏density=240;WQVGA屏density=120

VGA:Video Graphics Array,即:显示绘图矩阵,相当于640×480

HVGA:Half-size VGA;即:VGA的一半,分辨率为480×320;

QVGA:Quarter VGA;即:VGA的四分之一,分辨率为320×240;

WVGA:Wide Video Graphics Array;即:扩大的VGA,分辨率为800×480像素;

WQVGA:Wide Quarter VGA;即:扩大的QVGA,分辨率比QVGA高,比VGA低,一般是:400×240,480×272

获取屏幕尺寸信息的函数:

DisplayMetrics  metric = new  DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(metric);
        int width = metric.widthPixels;       // 屏幕宽度(像素)
        int height = metric.heightPixels;    // 屏幕高度(像素)
        float density = metric.density;       // 屏幕密度(0.75 / 1.0 / 1.5)
        int densityDpi = metric.densityDpi;  // 屏幕密度DPI(120 / 160 / 240)

px与dip转换公式:

换算公式为:
pixs =dips * (densityDpi/160)

dips=(pixs*160)/densityDpi

pixs = dips * (densityDpi/160.

dp与px转换的方法

public static int dip2px(Context context, float dipValue){
  final float scale = context.getResources().getDisplayMetrics().density;
  return (int)(dipValue * scale +0.5f);
}

public static int px2dip(Context context, float pxValue){
  final float scale = context.getResource().getDisplayMetrics().density;
  return (int)(pxValue / scale +0.5f);
}



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值