如何在Android中将像素转换为dip(密度无关像素)

时间:2012-04-10 18:16:32

标签: android

在我的Android应用程序中,我有像素(69像素),我需要将这些像素转换为倾角(密度无关像素)。

有什么建议吗?

3 个答案:

答案 0 :(得分:10)

只需按DisplayMetrics.density划分您的像素值。

答案 1 :(得分:7)

希望这会有所帮助

Resources r = getResources();
float dp = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_PX, 69, r.getDisplayMetrics());

答案 2 :(得分:7)

你可以试试这个:

public int convertDiptoPx(int pixel){

    float scale = getResources().getDisplayMetrics().density;
    int dips=(int) ((pixel * scale) + 0.5f);
    logMessage("Px=" +pixel+"  DipValue="+dips );   
    return dips;
}

Editted:

public int convertPxtoDip(int pixel){
    float scale = getResources().getDisplayMetrics().density;
    int dips=(int) ((pixel / scale) + 0.5f);
    return dips;
}