Android中dp和px之间进行转换
2015-12-14 17:23
375 查看
在xml布局文件中,我们既可以设置px,也可以设置dp(或者dip)。一般情况下,我们都会选择使用dp,这样可以保证不同屏幕分辨率的机器上布局一致。但是在代码中,如何处理呢?很多控件的方法中都只提供了设置px的方法,例如setPadding,并没有提供设置dp的方法。这个时候,如果需要设置dp的话,就要将dp转换成px了。
以下是一个应用类,方便进行px和dp之间的转换。
[java]
view plaincopyprint?
import android.content.Context;
public class DensityUtil {
/**
* 根据手机的分辨率从 dp 的单位 转成为 px(像素)
*/
public static int dip2px(Context context, float dpValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (dpValue * scale + 0.5f);
}
/**
* 根据手机的分辨率从 px(像素) 的单位 转成为 dp
*/
public static int px2dip(Context context, float pxValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (pxValue / scale + 0.5f);
}
}
以下是一个应用类,方便进行px和dp之间的转换。
[java]
view plaincopyprint?
import android.content.Context;
public class DensityUtil {
/**
* 根据手机的分辨率从 dp 的单位 转成为 px(像素)
*/
public static int dip2px(Context context, float dpValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (dpValue * scale + 0.5f);
}
/**
* 根据手机的分辨率从 px(像素) 的单位 转成为 dp
*/
public static int px2dip(Context context, float pxValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (pxValue / scale + 0.5f);
}
}
相关文章推荐
- 解决Android拍照保存在系统相册不显示的问题
- Android版本升级同时Sqlite数据库的升级及之前数据的保留
- Android文件Apk下载变ZIP压缩包解决方案
- Android 的提示接口-Toast
- Android 开发测试过程中用到的小工具
- Android:自定义Sqlite数据库路径
- Android开源项目第一篇——个性化控件(View)篇
- android连接wifi代码
- Android 常用开发工具类
- android 一题多改系列——android 打电话实现两种方法
- MPAndroidChart 教程:与图表进行手势交互 Interaction with the Chart(二)
- Androidying应用之多线程机制Handler
- 实现可缩放的马赛克控件---Android
- Android 后台线程弹对话框导致程序崩溃(is not valid; is your activity running)
- 网页链接触发原生Intent
- 安卓的各个版本以及对应的API的 Level
- Android学习路线图
- android 同一个ImageView显示不同的图片--->level-list
- Android的onCreateOptionsMenu()创建菜单Menu
- Android技巧:学习使用GridLayout