android屏幕分辨率计算转换
2015-10-16 10:07
495 查看
在之前的公司,我们的UI设计并不知道如何给android做标注,这让我很开心。因为他给iOS做的标注是以px为单位的,如果也给我px这个单位,那我还得再转换一次,很麻烦的,于是猴子本着麻烦自己不如麻烦别人的原则让他给我按照dp进行标注。但是他用的软件标注出来的尺寸大大丰富了我的想象力(不堪入目),更要命的是,他用一个不标准(非主流分辨率)的手机去验看效果。我的天。。。还是整理一下吧。
px转dp公式 (
int
) (pxValue / scale +
0
.5f)
dp转px公式 (
int
) (dipValue * scale +
0
.5f)
这里面唯一的参数就是得到。计算规则是 屏幕斜向分辨率(根据横向分辨率与纵向分辨率用勾股定理计算得出)/屏幕尺寸。[/code]scale,这个参数是有手机屏幕分辨率为一决定的,在代码中可以用[code]scale = context.getResources().getDisplayMetrics().density;
在这里记录一下代码,方便以后自用
import android.content.Context;/*** Created by vhawk on 15/10/16.* 密度转换工具*/public class DensityUtil {/*** 将px值转换为dip或dp值,保证尺寸大小不变** @param pxValue* @return*/public static int px2dip(Context context, float pxValue) {final float scale = context.getResources().getDisplayMetrics().density;return (int) (pxValue / scale + 0.5f);}/*** 将dip或dp值转换为px值,保证尺寸大小不变** @param dipValue* @return*/public static int dip2px(Context context, float dipValue) {final float scale = context.getResources().getDisplayMetrics().density;return (int) (dipValue * scale + 0.5f);}/*** 将px值转换为sp值,保证文字大小不变** @param pxValue* @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* @return*/public static int sp2px(Context context, float spValue) {final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;return (int) (spValue * fontScale + 0.5f);}}
相关文章推荐
- Android事件分发机制练习---打造属于自己的瀑布流
- android 设置item之间的空隙
- Android Studio: fill_parent、match_parent和wrap_content的区别
- Android百度地图导航API 导航引擎初始化失败解决方案
- FusionCharts报表在Android上的实现
- Hardware Acceleration硬件加速
- Android 百度地图开发问题----解决地图有时候加载不出来问题
- Android关于apk版本更新方法
- Android开发:Fragment不同操作的生命周期
- Android 4.4(KitKat)中的设计模式-Graphics子系统
- android中完全退出程序的四种办法
- android悬浮窗口的实现
- Android开发中立即停止AsyncTask和Thread
- Android快捷开关实现 Wifi开关、蓝牙开关、GPS开关、同步开关、亮度设置开关
- view变化监听器ViewTreeObserver介绍
- android.content.res.Resources$NotFoundException: String resource ID #0x1
- android 申请移动应用的签名生成方法
- 性能优化之Java(Android)代码优化
- android camera MediaRecoder调用顺序
- Android性能调优