Android根据分辨率进行单位转换-(dp,sp转像素px)


[toc]


Android系统中,默认的单位是像素(px)。也就是说,在没有明确说明的情况下,所有的大小设置都是以像素为单位。
如果以像素设置大小,会导致不同分辨率下出现不同的效果。那么,如何将应用中所有大小的单位都设置为’dp’呢?

1
2
3
4
5
6
7
8
9
10
11
/**获取当前分辨率下指定单位对应的像素大小(根据设备信息)
* px,dip,sp -> px
*
* @param unit TypedValue.COMPLEX_UNIT_DIP,TypedValue.COMPLEX_UNIT_SP
* @param value 要转换的值
* @param context 上下文
* @return 转换后的px值
*/
public static float dip2px(int unit,float value,Context context){
return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, value, instance.getResources().getDisplayMetrics());
}

谢谢你请我吃糖,Mua
0%