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跳转intent简单教程
  2. Android(安卓)WebView 图片自适应屏幕宽度
  3. Appium:Android(安卓)- 等待activity出现(wait_activity)
  4. android 图片点击一下就放大到全屏,再点一下就回到原界面
  5. Android跳转intent简单教程
  6. Android(安卓)获取屏幕的分辨率
  7. Android(安卓)判断当前网络 wifi ctwap(cmwap) ctnet(cmnet)
  8. android的全屏和屏幕高宽的获取
  9. Android获取屏幕宽和高

随机推荐

  1. Android(安卓)Webview加载www.youtube.co
  2. 自动完成文本框AutoCompleteTextView
  3. Android跳转到系统通知管理页面
  4. Android开发系列(三)
  5. Linux 下的ADT 权限问题
  6. Android上传文件至PHP服务器
  7. android唤起另外一个程序
  8. 2011.08.18(2)——— android 自定义组合组
  9. 1、Android开发环境的搭建
  10. OkHttpClientManager使用