Android 中像素px和dp的转化

来源:互联网 发布:李维斯和杰克琼斯 知乎 编辑:程序博客网 时间:2024/06/05 20:59

在Android的布局文件中,往往使用dp作为控件的宽度和高度尺寸,但是在Java代码中,调用getWidth()方法获得的尺寸单位

却是像素px,这两个单位有明显的区别:dp和屏幕的密度有关,而px与屏幕密度无关,所以使用时经常会涉及到两者之间的互相

转化,代码示例如下

public int Dp2Px(Context context, float dp) {        final float scale = context.getResources().getDisplayMetrics().density;        return (int) (dp * scale + 0.5f);} public int Px2Dp(Context context, float px) {    final float scale = context.getResources().getDisplayMetrics().density;    return (int) (px / scale + 0.5f);}


------------------2012-11-02 09:58