您的位置:首页 > 移动开发 > Android开发

android dp与px之间转换以及px与sp之间的转换

2015-07-16 16:28 393 查看
DisplayUtil转换类

using System;

namespace com.main
{
/// <summary>
/// 像素转换类
/// </summary>
public static class DisplayUtil
{
/// <summary>
///  将px值转换为dip或dp值,保证尺寸大小不变
/// </summary>
/// <param name="pxValue">Px value.</param>
/// <param name="scale">Scale.</param>
public static int px2dip(float pxValue, float scale) {
return (int) (pxValue / scale + 0.5f);
}
/// <summary>
///将dip或dp值转换为px值,保证尺寸大小不变
/// </summary>
/// <param name="dipValue">Dip value.</param>
/// <param name="scale">Scale.(DisplayMetrics类中属性density)</param>
public static int dip2px(float dipValue, float scale) {
return (int) (dipValue * scale + 0.5f);
}
/// <summary>
/// 将px值转换为sp值,保证文字大小不变
/// </summary>
/// <param name="pxValue">Px value.</param>
/// <param name="fontScale">Font scale.</param>
public static int px2sp(float pxValue, float fontScale) {
return (int) (pxValue / fontScale + 0.5f);
}
/// <summary>
///  将sp值转换为px值,保证文字大小不变
/// </summary>
/// <param name="spValue">Sp value.</param>
/// <param name="fontScale">Font scale.</param>
public static int sp2px(float spValue, float fontScale) {
return (int) (spValue * fontScale + 0.5f);
}
}
}


mainactivity

DisplayMetrics dm = new DisplayMetrics();
this.WindowManager.DefaultDisplay.GetMetrics(dm);
fontscale = dm.ScaledDensity;//字体缩放比例
scale = dm.Density;//像素密度
//根据需要进行转换
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: