在我的Android应用程序中,我有像素(69像素),需要将这些像素转换为dip(密度独立像素)。 有什么建议吗?
只需将像素值除以DisplayMetrics.density。
希望这个对您有所帮助。
Resources r = getResources();
float dp = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_PX, 69, r.getDisplayMetrics());
public int convertDiptoPx(int pixel){
float scale = getResources().getDisplayMetrics().density;
int dips=(int) ((pixel * scale) + 0.5f);
logMessage("Px=" +pixel+" DipValue="+dips );
return dips;
}
编辑后:
public int convertPxtoDip(int pixel){ //获取屏幕密度比例 float scale = getResources().getDisplayMetrics().density; //根据比例将像素转化为dip int dips=(int) ((pixel / scale) + 0.5f); return dips; }