import android.content.Context;
import android.util.DisplayMetrics;
import android.util.Log;

/**
* 计算公式 pixels = dips * (density / 160)
*
* @version 1.0.1 2010-12-11
*
* @author
*/
public class DensityUtil {
private static final String TAG = "DensityUtil";
// 当前屏幕的densityDpi
private static float dmDensityDpi = 0.0f;
private static DisplayMetrics dm;
private static float scale = 0.0f;

/**
*
* 根据构造函数获得当前手机的屏幕系数
*
* */
public DensityUtil(Context context) {
// 获取当前屏幕
dm = new DisplayMetrics();
dm = context.getApplicationContext().getResources().getDisplayMetrics();
//设置DensityDpi
setDmDensityDpi(dm.densityDpi);
//密度因子
scale = getDmDensityDpi() / 160;
Log.i(TAG, toString());
}

/**
* 当前屏幕的density因子
*
* @param DmDensity
* @retrun DmDensity Getter
* */
public static float getDmDensityDpi() {
return dmDensityDpi;
}
/**
* 当前屏幕的density因子
*
* @param DmDensity
* @retrun DmDensity Setter
* */
public static void setDmDensityDpi(float dmDensityDpi) {
DensityUtil.dmDensityDpi = dmDensityDpi;
}
/**
* 密度转换像素
* */
public static int dip2px(float dipValue) {

return (int) (dipValue * scale + 0.5f);

}
/**
* 像素转换密度
* */
public int px2dip(float pxValue) {
return (int) (pxValue / scale + 0.5f);

}
@Override
public String toString() {
return " dmDensityDpi:" + dmDensityDpi;
}

}

更多相关文章

  1. android 3D gallery 并 判断当前选中项
  2. android 3D gallery 并 判断当前选中项
  3. Android(安卓)获取屏幕分辨率
  4. android 设置屏幕亮度
  5. android 点击屏幕关闭 软键盘
  6. 分享方法:android 获得屏幕状态
  7. android中如何利用线程循环打印
  8. Android(安卓)获取手机屏幕大小两种方法
  9. Android之获取当前Activity名称

随机推荐

  1. Android(安卓)四大组件你都知道吗
  2. 个人总结--Android(安卓)应用开发中国大
  3. Android(安卓)Service的思考(4)
  4. 我的第一个Android应用程序HelloWorld
  5. Cursor与Adapter结合使用
  6. Xamarin的Mono for Android目前可运行于M
  7. Ubuntu14.04 Android(安卓)源码编译
  8. Samsung Galaxy Nexus 正式發佈,4.65 吋 H
  9. Android中矢量图形的那些事 - SVG or Vec
  10. Android(安卓)反射机制