/**
* 私有构造方法
*
* @param activity
*/
private MySystemParams(Activity activity) {
DisplayMetrics dm = new DisplayMetrics();
activity.getWindowManager().getDefaultDisplay().getMetrics(dm);
screenWidth = dm.widthPixels;
screenHeight = dm.heightPixels;
densityDpi = dm.densityDpi;
scale = dm.density;
fontScale = dm.scaledDensity;

screenOrientation = screenHeight > screenWidth ? SCREEN_ORIENTATION_VERTICAL
: SCREEN_ORIENTATION_HORIZONTAL;
}




通常在代码中设置组件或文字大小只能用px,通过这个工具类我们可以把dip(dp)或sp为单位的值转换为以px为单位的值而保证大小不变。方法中的参数请参考http://www.cnblogs.com/wader2011/archive/2011/11/28/2266669.html

代码

/**
*Android大小单位转换工具类
*
* @author wader
*
*/
public class DisplayUtil {
/**
* 将px转换为dip或dp值,保证尺寸大小不变
*
* @param pxValue
* @param scale(DisplayMetrics类中属性density)
* @return
*/
public static intpx2dip(float pxValue, float scale) {
return (int) (pxValue / scale + 0.5f);
}

/**
* 将dip或dp值转换px值,保证尺寸大小不变
*
* @param dipValue
* @paramscale(DisplayMetrics类中属性density)
* @return
*/
public static int dip2px(float dipValue, float scale) {
return (int) (dipValue * scale + 0.5f);
}

/**
* 将px转换sp值,保证文字大小不变
*
* @param pxValue
* @param fontScale(DisplayMetrics类中属性scaledDensity)
* @return
*/
public static intpx2sp(float pxValue, float fontScale) {
return (int) (pxValue / fontScale + 0.5f);
}

/**
* 将sp转换px值,保证文字大小不变
*
* @param spValue
* @param fontScale(DisplayMetrics类中属性scaledDensity)
* @return
*/
public static intsp2px(float spValue, float fontScale) {
return (int) (spValue * fontScale + 0.5f);
}
}

更多相关文章

  1. android 字体大小,样式 ,像素的设置
  2. Android ---android:autoLink属性
  3. android获取设备屏幕大小的方法
  4. android 代码中设置字体大小
  5. Android修改自定义Dialog的大小
  6. android 动态设置控件大小
  7. Android 设置字体大小和显示大小后界面混乱

随机推荐

  1. php 求数组中的偶数成员
  2. 0805 PHP编程作业
  3. 请实例演绎php遍历数组与js遍历数组的区
  4. 数组、计算器
  5. 16期8月5日作业
  6. 0805作业
  7. 函数的参数、返回值、作用域
  8. gogs 实现webhook钩子(php接口形式)
  9. 如何在CentOS下PHP多版本共存时指定命令
  10. PHP的数据类型和转化,PHP变量和常量