android TypedValue.applyDimension()代码转换dp,sp
2015-06-24 10:16
393 查看
/** * Converts an unpacked complex data value holding a dimension to its final floating * point value. The two parameters <var>unit</var> and <var>value</var> * are as in {@link #TYPE_DIMENSION}. * * @param unit The unit to convert from. * @param value The value to apply the unit to. * @param metrics Current display metrics to use in the conversion -- * supplies display density and scaling information. * * @return The complex floating point value multiplied by the appropriate * metrics depending on its unit. */ public static float applyDimension(int unit, float value, DisplayMetrics metrics) { switch (unit) { case COMPLEX_UNIT_PX: return value; case COMPLEX_UNIT_DIP: return value * metrics.density; case COMPLEX_UNIT_SP: return value * metrics.scaledDensity; case COMPLEX_UNIT_PT: return value * metrics.xdpi * (1.0f/72); case COMPLEX_UNIT_IN: return value * metrics.xdpi; case COMPLEX_UNIT_MM: return value * metrics.xdpi * (1.0f/25.4f); } return 0; }然..
/** * 根据手机的分辨率从 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); }
由以上代码分析可知:
第一个参数为 单位,第二个参数为值(第一个参数设置的单位指定的值),返回值 都是像素
(2)也可以把单位设置成COMPLEX_UNIT_PX,验证返回值都是像素
相关文章推荐
- 使用CocoaPods来做iOS程序的包依赖管理
- iOS 模拟终端控件
- iOS TextField设置大全
- Swift项目兼容Objective-C问题汇总
- [android]深入理解findViewById原理
- android升级到5.1.1,见了运行模拟器后报错
- Android之设置横屏竖屏
- iOS storyboard 界面间传值
- Windows Server 2012 R2 DirectAccess功能测试(2)App1服务器安装及配置
- cocos2dx创造精灵的五种方法
- Android-NDK学习(三)JNI交互处理
- Android-NDK学习(一)环境搭建
- 关于Android中JSON数据的操作
- Android从文件读取图像显示的效率问题
- 自己做的简单记事本APP
- android studio每次自动更新 解决办法
- 10款微信公众平台相关的开源软件
- [IOS]获取网页上数据(图片、文字、视频)
- ExpandableListView以及BaseExpandableListAdapter的基本使用
- Android消息推送完美方案