阅读更多

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获得屏幕的宽和高
  2. android屏幕保持唤醒
  3. android 获取屏幕宽高、view宽高
  4. Android屏幕方向及键盘状态
  5. Android系统信息获取 之十二:获取屏幕分辨率及密度
  6. Android屏幕适配全攻略(最权威的官方适配指导)Android屏幕适配出现
  7. Android 1.6 支持更多的屏幕大小和分辨率
  8. Android屏幕计量单位详解
  9. 实现Android屏幕控制Androidscreencast应用

随机推荐

  1. android window部分属性
  2. Android(一)开发环境的搭建
  3. Andriod使用webview控件往APP里内嵌网页
  4. android中判断横屏或者竖屏并改变背景
  5. Android调用系统相机拍照并保存到指定位
  6. Android: JNI本地函数控制Java端代码
  7. android上,实现直接在屏幕上显示点击位置,
  8. SDK和Android(安卓)Studio的下载安装
  9. android edittext 去边框
  10. windows 系统Android模拟器联网设置