阅读更多

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 获取屏幕宽高、view宽高
  3. Android(安卓)判断当前线程是否是UI主线程
  4. Android客户端GPS定位源码
  5. android屏幕保持唤醒
  6. android 音乐播放工具类MediaPlayer
  7. Android获得屏幕的宽和高
  8. android 小知道积累II
  9. Android中的px,in,pt,dp,dip,sp

随机推荐

  1. [android] Serializable 和 Parcelable
  2. How to create and use SDCard image for
  3. Android的SocketTCP客户端发送信息
  4. 1.1 Android(安卓)入门
  5. Android弹幕实现:基于B站弹幕开源系统(5)-抽
  6. Qt on Android:将Qt调试信息输出到logcat
  7. Android(安卓)文件操作详解及简单实例
  8. Android(安卓)开源的真相: 无法fork
  9. Android(安卓)8.0适配之应用图标适配
  10. Android(安卓)ANR错误排查