今天在写一个代码的时候,遇见了动态设置Textview文字的大小的时候遇见了一个问题,那就是从dimen中读取出来的数据居然不是dp,而是像素。所以显得字体异常的大。于是只有在网上从新找一个代码将px转换为dp。
/**
* 根据手机的分辨率从 dp 的单位 转成为 px(像素)
*/
public int dipTopx(Context context, float dpValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (dpValue * scale + 0.5f);
}
/**
* 根据手机的分辨率从 px(像素) 的单位 转成为 dp
*/
public int pxTodip(Context context, float pxValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (pxValue / scale + 0.5f);
}
还有需要注意的是,如果直接使用需要设定到底是按照那种方式进行设定的。