002.像素和dip之间的相互转换

Posted on 2017-11-05 11:17  nextfailure  阅读(190)  评论(0)    收藏  举报

android不同屏幕之间像素和dip的转换比例是不一样的:

    2 px = 3 dip if dpi == 80(ldpi), 320x240 screen
    1 px = 1 dip if dpi == 160(mdpi), 480x320 screen
    3 px = 2 dip if dpi == 240(hdpi), 840x480

方法:

  1. // dip转像素  
  2. public int DipToPixels(Context context, int dip) {  
  3.     final float SCALE = context.getResources().getDisplayMetrics().density;  
  4.   
  5.     float valueDips = dip;  
  6.     int valuePixels = (int) (valueDips * SCALE + 0.5f);  
  7.   
  8.     return valuePixels;  
  9.   
  10. }  
  11.   
  12. // 像素转dip  
  13. public float PixelsToDip(Context context, int Pixels) {  
  14.     final float SCALE = context.getResources().getDisplayMetrics().density;  
  15.   
  16.     float dips = Pixels / SCALE;  
  17.   
  18.     return dips;  
  19.   
  20. }