package com.vinvo.android.games.limitlessDiamonds.utils;

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

public class DensityManager {
/**
* SoundManger的实例对象
*/
static private DensityManager densityInstance;
// 当前屏幕的density因子
private static float dmDensityDpi = 0.0f;
private static DisplayMetrics dm;
private static float scale = 0.0f;
private static final float CURR_SCALE = 1.5f;

private DensityManager(){
}

/**
* 获得SoundMangaer的实例
*
* @return SoundMangaer的实例
*/
static synchronized public DensityManager getInstance() {
if (densityInstance == null)
densityInstance = new DensityManager();
return densityInstance;
}
/**
* 初始化
* @param context
*/
public static void initDensity(Context context) {
dm = new DisplayMetrics();
dm = context.getApplicationContext().getResources().getDisplayMetrics();
dmDensityDpi=dm.densityDpi;
scale = dmDensityDpi / 160;
}

/**
* 根据当前屏幕的密度转换像素值
* @param pxValue 需要转换的像素值
* @return 转换后的像素值
*/
public static int transPxValue(int pxValue){
int dipValue = (int) (pxValue / CURR_SCALE + 0.5f);
int result = (int) (dipValue * scale + 0.5f);
return result;
}
/**
* 清理实例
*/
public static void clearInstance(){
if (densityInstance != null){
densityInstance = null;
}
}
}

更多相关文章

  1. Android 代码获取手机屏幕分辨率的代码
  2. Android AsyncTask实例
  3. android获取屏幕分辨率实现
  4. Android MediaProjection学习(一)之和ImageReader实现屏幕截图
  5. 【android-tips】android程序执行adb shell命令(实例源码)
  6. android skia 使用实例

随机推荐

  1. SmallActivity创建
  2. Android(安卓)AnimationSet详解
  3. COCOS2DX 安卓WIN32下配置手册
  4. Android所有系统资源图标android.R.drawa
  5. 2010.12.29——— android 可伸缩的listv
  6. Android简单的登录界面的值传递
  7. Using Eclipse for Android(安卓)C/C++ D
  8. android双击返回键退出程序
  9. Android判断Wlan信号强弱及wlan管理信息
  10. android 常用资料