Android dp到厘米的转换
2015-06-30 14:35
393 查看
为了绘制地图上的比例尺,需要自己去绘制和计算比例尺的长度和对应的值
首先计算dp到英寸的关系
DisplayMetrics metrics = getResources().getDisplayMetrics();
float result = metrics.density / metrics.xdpi;
1dp约为result英寸
其中metrics.density代表一个dp对应的像素值,
metrics.xdpi代表一英寸对应的像素值,即The exact physical pixels per inch of the screen in the X dimension
因此,1dp约为result * 2.54f厘米
TypedValue.java文件
首先计算dp到英寸的关系
DisplayMetrics metrics = getResources().getDisplayMetrics();
float result = metrics.density / metrics.xdpi;
1dp约为result英寸
其中metrics.density代表一个dp对应的像素值,
metrics.xdpi代表一英寸对应的像素值,即The exact physical pixels per inch of the screen in the X dimension
因此,1dp约为result * 2.54f厘米
TypedValue.java文件
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; }
相关文章推荐
- Activity切换动画无效(android:windowIsTranslucent)影响(android:windowAnimationStyle)
- 移动5年 Android生态系统的演进
- Android 中如何使用 enum / 枚举
- android_launcher的源码详细分析
- Android简化一个界面内的多个Listener
- Android 自己实现 NavigationView [Design Support Library(1)]
- Android 自己实现 NavigationView [Design Support Library(1)]
- android studio 编译错误sRGB
- Android Studio 错误: 非法字符: '\ufeff' 解决方案|错误: 需要class, interface或enum
- Android欢迎界面的创建方法
- android 百分比适配
- 苹果MAC电脑安装Android sdk图文教程
- APK反破解之______Android APK 签名比对
- android.view.View
- android studio 开发 命令行与gradle 导入第三方包(六)
- 基于Android的蓝牙A2DP功能的实现
- Android Studio报Error:Execution failed for task ':Companion:preDexDebug'.
- 基于 Android NDK 的学习之旅----- C调用Java
- Github上优秀的Android开源项目常用控件
- Android单元测试