dp与px,sp的安卓转换。
来源:互联网 发布:海康威视网络监控方案 编辑:程序博客网 时间:2024/06/05 07:39
一种是网上的单位转换代码:
/** * 根据手机的分辨率从 dp 的单位 转成为 px(像素) * * @param context * @param dpValue */ public static int dip2px(Context context, float dpValue) { final float scale = context.getResources().getDisplayMetrics().density; return (int) (dpValue * scale + 0.5f); } /** * 根据手机的分辨率从 px(像素) 的单位 转成为 dp * * @param context * @param pxValue */ public static int px2dip(Context context, float pxValue) { final float scale = context.getResources().getDisplayMetrics().density; return (int) (pxValue / scale + 0.5f); } /** * 将px值转换为sp值,保证文字大小不变 * * @param pxValue * @param fontScale * (DisplayMetrics类中属性scaledDensity) * @return */ public static int px2sp(Context context, float pxValue) { final float fontScale = context.getResources().getDisplayMetrics().scaledDensity; return (int) (pxValue / fontScale + 0.5f); } /** * 将sp值转换为px值,保证文字大小不变 * * @param spValue * @param fontScale * (DisplayMetrics类中属性scaledDensity) * @return */ public static int sp2px(Context context, float spValue) { final float fontScale = context.getResources().getDisplayMetrics().scaledDensity; return (int) (spValue * fontScale + 0.5f); }
另一种是用安卓自带的类转换。
实际上,Android中也提供了单位转换的函数,那就是TypedValue类。
TypedValue.COMPLEX_UNIT_SP,16 设置成16sp。
TypedValue:这个类是工具类,作为一个动态容器,它存放一些数据值,这些值主要是
resource中的值。TypedValue类把对应的值转化为实际屏幕上的点值,也就是像素
值。
具体的用法如下:
TypedValue.applyDimension(int unit, float value, DisplayMetrics metrics)
其中,第一个参数是你想要得到的单位,第二个参数是你想得到的单位的数值,第三个
参数封装了显示区域的各种属性值。
例如,我要得到一个25sp,那么我就用
TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP,
25,context.getResources().getDisplayMetrics())
就是说,我想要一个25(第二个参数)SP(第一个参数)在当前设备上对应的px值。
注意:
COMPLEX_UNIT_DIP:乘以显示密度density(dpi/160)。
TypedValue.COMPLEX_UNIT_SP:乘以像素密度scaledDensity(=density)。
阅读全文
0 0
- dp与px,sp的安卓转换。
- 代码中dp与px,px与sp的转换
- 安卓中的单位px,dp与sp
- px与dp与sp之间的转换
- 【转】dp,px,pt,sp的区别与转换
- dp, sp, 与 px 互相转换的工具类
- Android中dp、sp与px之间的相互转换
- android中px与sp,dp之间的转换
- dp sp px之间的区别与转换
- dp sp px 转换
- 浅谈安卓单位px,dp,sp
- android dp与px之间转换以及px与sp之间的转换
- dp,px,sp android间的转换
- android px dp sp的转换
- dp、px、sp之间的转换
- Android dp,px,sp之间的转换
- dp & px & sp 之间的相互转换
- dp、sp和px的相互转换
- Android通过两级缓存加载图片
- C#获取目录及子目录文件名,文件流写入txt
- Swift: 获取系统字体
- Git 仓库
- 前端学习笔记1:HTML文件基本结构
- dp与px,sp的安卓转换。
- JS回调函数原理及用法
- Maven添加自定义jar包
- Coderforces Boy or Girl
- Android_调用震动
- AOj0118 dfs
- 存储容量(空间)换算公式(B、KB、MB、GB、TB、PB、EB)
- 惯性算法
- java.util.ConcurrentModificationException异常处理