一、相关知识点:
1.首先先了解五个东西:dp 、dip、dpi、density 、屏幕大小
dip : Density independent pixels ,设备无关像素。
dp :就是dip
dpi :像素密度 , 直接来说就是一英寸多少个像素点。常见取值 120,160,240
density : 密度。常见取值 1.5 , 1.0 。和标准dpi的比例(160px/inc)
屏幕大小:屏幕大小是手机对角线的物理尺寸,以英寸(inch)为单位。比如某某手机为“5寸大屏手机”,就是指对角线的尺寸,5寸×2.54厘米/寸=12.7厘米。
换算公式:
dp = dpi /(160像素/英寸)) px = density * dp
也就是说dp与屏幕密度有关,所以在对控件的长宽设置时使用dp的话,他显示时会根据设备的屏幕密度计算出px值,实现适配。
2.Android中获取到dp与density:
DisplayMetrics metrics=new DisplayMetrics();
WindowManager m=(WindowManager) getApplication().getSystemService(Context.WINDOW_SERVICE);
m.getDefaultDisplay().getMetrics(metrics);
System.out.println("+++++++++++++++