Android中dp、px转换案例分析
2015-04-19 18:44
281 查看
文章摘要:
Android开发中,界面显示很重要,常用的是dp和px的认识,还有其转换。本文以个人前两天碰到的问题来演示dp、px转换过程。
1、问题描述
系统登录界面有自己开发的输入键盘,在像素1280*728的Android设备上正常显示,而在1920*1128的设备上却显示变小,且相对位置发生改变。
2、问题分析
1)键盘为自定义的布局,弹出位置设定如下:
numkeyPop.showAtLocation(dialog, Gravity.NO_GRAVITY, width1, height1);
2)参数含义
dialog:依附的view
Gravity.NO_GRAVITY:不采用相对坐标
width2, height2:显示的坐标起点,单位是px
3)源码分析
int width = wm.getDefaultDisplay().getWidth();
int width1 = (width / 2) + 216; //查看布局,登录框是430dp,216的单位是dp
4)分析总结
参数值传入错误,单位不一致。
3、解决方法
对dp进行转换,换成px
步骤如下:
1)获取像素密度
float scale = context.getResources().getDisplayMetrics().density;
2)转换
int width2 = (int)((width / 2) + 216 * scale + 0.5f);
3)修改参数
numkeyPop.showAtLocation(dialog, Gravity.NO_GRAVITY, width2, height2);
4、案例总结
1)1280*728上 1dp =
2.9px,1920*1128上 1dp =
4.4px
2)dp是一个相对单位
3)java方法中传递的参数的单位要注意
4)dp、px及其转换参考
Android开发中,界面显示很重要,常用的是dp和px的认识,还有其转换。本文以个人前两天碰到的问题来演示dp、px转换过程。
1、问题描述
系统登录界面有自己开发的输入键盘,在像素1280*728的Android设备上正常显示,而在1920*1128的设备上却显示变小,且相对位置发生改变。
2、问题分析
1)键盘为自定义的布局,弹出位置设定如下:
numkeyPop.showAtLocation(dialog, Gravity.NO_GRAVITY, width1, height1);
2)参数含义
dialog:依附的view
Gravity.NO_GRAVITY:不采用相对坐标
width2, height2:显示的坐标起点,单位是px
3)源码分析
int width = wm.getDefaultDisplay().getWidth();
int width1 = (width / 2) + 216; //查看布局,登录框是430dp,216的单位是dp
4)分析总结
参数值传入错误,单位不一致。
3、解决方法
对dp进行转换,换成px
步骤如下:
1)获取像素密度
float scale = context.getResources().getDisplayMetrics().density;
2)转换
int width2 = (int)((width / 2) + 216 * scale + 0.5f);
3)修改参数
numkeyPop.showAtLocation(dialog, Gravity.NO_GRAVITY, width2, height2);
4、案例总结
1)1280*728上 1dp =
2.9px,1920*1128上 1dp =
4.4px
2)dp是一个相对单位
3)java方法中传递的参数的单位要注意
4)dp、px及其转换参考
相关文章推荐
- Android 单位转换(dp、sp、px)
- android dp和px之间转换
- android px dp sp的转换
- Android开发之单位转换,dp、px、sp
- dp与px间相互转换:利用Android原生API实现px转换dp,dp转换px
- Android px、dp、sp之间相互转换
- Android——工具类(屏幕尺寸、sp转换为px、dp转换为px)
- Android根据分辨率进行单位转换-(dp,sp转像素px) - topMan'blog - ITeye技术网站
- Android 获取屏幕宽度,dp,sp,px转换方法
- (转)Android中dp、sp、px的转换和区别
- android中如何如何定义圆角,实现dp转换px适应不同屏幕需求
- android中px和dp,px和sp之间的转换方法
- Android中dp和px之间进行转换
- Android中dp和px之间进行转换
- android中px和dp的相互转换
- android中的单位转换,dp,sp,px
- Android根据分辨率进行单位转换-(dp,sp转像素px)
- Android 程序中像素(px)跟 单位dp(dip)之间的转换
- Android px、dp、sp之间相互转换
- Android 开发之 dp 和 px 之间相互转换