Android 的几个单位dp 、sp、px的转换
来源:互联网 发布:中国医科大学网络 编辑:程序博客网 时间:2024/05/21 17:02
由于项目只出了一套苹果的标注图1242x2208,所以我们的就得自己计算转换成Android的单位。我们Android的目标分辨率是1080x1920 ,dpi是480的;1080是1242的1.15倍。而Android的1080x1920,dpi=480的设备要转成dp,dp=px/3;所以我们用苹果的设计图的时候公式就是 dp=px/3.45;
大部分的尺寸都是在layout里面写固定了,但是有些是动态计算了,所以收集了dp、sp、px的相互转换方法,
/** * 将px值转换为dip或dp值,保证尺寸大小不变 * * @param pxValue * @param context * (DisplayMetrics类中属性density) * @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 * @param context * (DisplayMetrics类中属性density) * @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 * @param context * (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 context * (DisplayMetrics类中属性scaledDensity) * @return */ public static int sp2px(Context context, float spValue) { final float fontScale = context.getResources().getDisplayMetrics().scaledDensity; return (int) (spValue * fontScale + 0.5f); }在贴上我的dimens.xml文件的部分内容。
<dimen name="txt_xsmall">10sp</dimen> <dimen name="txt_small">12sp</dimen> <dimen name="txt_normal">14sp</dimen> <dimen name="txt_large">16sp</dimen> <dimen name="txt_xlarge">18sp</dimen> <dimen name="txt_xxlarge">20sp</dimen> <dimen name="txt_xxxlarge">22sp</dimen> <dimen name="txt_xxxxlarge">24sp</dimen><!----感觉txt_xxxlarge这样命名字体的尺寸还不是很好,因为对照标注图设置的时候不方便,比较赞同项目的命名方法----> <!--根据苹果的标注图转换成Android的尺寸--> <dimen name="px_15">4.3dp</dimen> <dimen name="px_20">5.8dp</dimen> <dimen name="px_30">8.7dp</dimen> <dimen name="px_40">11.6dp</dimen> <dimen name="px_45">13dp</dimen> <dimen name="px_50">14.5dp</dimen> <dimen name="px_55">16dp</dimen> <dimen name="px_60">17.4dp</dimen> <dimen name="px_67">19.4dp</dimen> <dimen name="px_70">20dp</dimen> <dimen name="px_100">29dp</dimen> <dimen name="px_120">35dp</dimen> <dimen name="px_125">36.2dp</dimen> <dimen name="px_130">38dp</dimen> <dimen name="px_150">43.5dp</dimen> <dimen name="px_160">46dp</dimen> <dimen name="px_183">53dp</dimen> <dimen name="px_200">58dp</dimen> <dimen name="px_220">64dp</dimen> <dimen name="px_256">74dp</dimen> <dimen name="px_380">110dp</dimen> <dimen name="px_460">133.3dp</dimen> <dimen name="px_500">145dp</dimen> <dimen name="px_580">168dp</dimen>
0 0
- Android 的几个单位dp 、sp、px的转换
- Android单位转换(px、sp、dp之间的转换)
- Android px与dip(dp)、px与sp单位的转换
- android中的单位转换,dp,sp,px
- Android 单位转换(dp、sp、px)
- Android中px, dp, sp单位转换
- Android单位转换 (px、dp、sp之间的转换工具类)
- Android单位转换 (px、dp、sp之间的转换工具类)
- Android单位转换 (px、dp、sp之间的转换工具类)
- android手机屏幕密度的计算及dp、px、sp单位的转换,屏幕适配相关
- dp,px,sp android间的转换
- android px dp sp的转换
- Android dp,px,sp之间的转换
- Android的px,dp和sp等单位的区别
- Android中常用单位dp,px,sp之间的相互转换
- Android 中的dip、dp、px、sp等单位的说明
- android中像素单位dp、px、pt、sp的比较
- Android中像素单位dp、px、pt、sp的比较
- iOS--ViewController转场
- xml读取到ValueMap问题
- 121. Best Time to Buy and Sell Stock(贪心)
- mysql数据库,存储过程中如何判断游标Cursor中结果集是否为空
- Eclipse快捷键总结
- Android 的几个单位dp 、sp、px的转换
- CTR预估模型浅谈
- Session的生命周期
- ARM64的启动过程之(六):异常向量表的设定
- [李景山php]算法系列|php 实现快速排序
- 素数距离问题
- 工具链接。。。。
- Python中的装饰器详解
- 奇异值分解(SVD)原理详解及推导 (转)