android屏幕 像素 DP 相关计算




// 获取屏幕宽度:
  
  Context context=MainActivity.this;
  WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
  DisplayMetrics outMetrics = new DisplayMetrics();
  wm.getDefaultDisplay().getMetrics(outMetrics);
  
  int mScreenWidth = outMetrics.widthPixels;
  
  
  //1DP等于多少像素 PX = density * DP   或者    dp=outMetrics.widthPixels/outMetrics.density

  //可以用下面公式 计算1DP占多少像素,
    int  dpx=(int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 1, context.getResources().getDisplayMetrics());
    
  Log.v("zms", "屏幕宽度:"+mScreenWidth+"像素"+",  像素密度::"+outMetrics.densityDpi+"   像素比:"+outMetrics.density
    +"\n 1DP等于"+dpx+"个像素,屏幕总共占"+mScreenWidth/outMetrics.density+"个dp");


 中兴z5s手机 : 5寸 分辨率 1920*1080  像素密度 441
                           计算结果:     屏幕宽度:1080像素,  像素密度::480(441会算成480xxh)   像素比:3.0 
                                                  1DP等于3个像素,屏幕总共占360.0个dp


layout-small(屏幕尺寸小于3英寸左右的布局),  
layout-normal(屏幕尺寸小于4.5英寸左右),  
layout-large(4英寸-7英寸之间),  
layout-xlarge(7-10英寸之间)  





 * view.getX() 获取的是控件左上角相对于 父控件 左上角的像素
 * view.getTranslationX 获取相对于 父控件的是偏移量,相对于创建视图时的原始位置,不管中间动画移动了多少次,都是相对于开始时候的距离 



你可能感兴趣的:(android,dp,ppi)