DisplayUtil

来源:互联网 发布:linux启动盘软碟通制作 编辑:程序博客网 时间:2024/06/05 09:08

public class DisplayUtil {

private static DisplayUtil displayUtil = null;private DisplayMetrics dm = null;public static DisplayUtil getInstance() {    if (displayUtil == null) {        displayUtil = new DisplayUtil();    }    return displayUtil;}/** * 获取DisplayMetrics对象 *  * @return DisplayMetrics */public DisplayMetrics getDisplayMetrics() {    if (dm == null) {        dm = new DisplayMetrics();    }    return dm;}/** * 获取屏幕宽度 *  * @param activity * @return 屏幕的宽度 */public int getScreenWidth(Activity activity) {    if (activity == null) {        return 0;    }    if (dm == null) {        dm = new DisplayMetrics();    }    activity.getWindowManager().getDefaultDisplay().getMetrics(dm);    return dm.widthPixels;}/** * 获取屏幕高度 *  * @param activity * @return 屏幕的高度 */public int getScreenHeight(Activity activity) {    if (activity == null) {        return 0;    }    if (dm == null) {        dm = new DisplayMetrics();    }    activity.getWindowManager().getDefaultDisplay().getMetrics(dm);    return dm.heightPixels;}/** * 获取设备操作系统版本 *  * @return */public String getOsVersion() {    return android.os.Build.VERSION.RELEASE;}/** * 获取设备型号 *  * @return */public String getDevice() {    return android.os.Build.MODEL;}/** * 将px值转换为dip或dp值,保证尺寸大小不变 *  * @param context *            上下文对象 * @param pxValue *            需要转换的值 * @return 转换后的值 */public int px2dip(Context context, float pxValue) {    if (context == null) {        return 0;    }    final float scale = context.getResources().getDisplayMetrics().density;    return (int) (pxValue / scale + 0.5f);}/** * 将dip或dp值转换为px值,保证尺寸大小不变 *  * @param context *            上下文对象 * @param dipValue *            需要转换的值 * @return 转换后的值 */public int dip2px(Context context, float dipValue) {    if (context == null) {        return 0;    }    final float scale = context.getResources().getDisplayMetrics().density;    return (int) (dipValue * scale + 0.5f);}/** * 将px值转换为sp值,保证文字大小不变 *  * @param context *            上下文对象 * @param pxValue *            需要转换的值 * @return 转换后的值 */public int px2sp(Context context, float pxValue) {    if (context == null) {        return 0;    }    final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;    return (int) (pxValue / fontScale + 0.5f);}/** * 将sp值转换为px值,保证文字大小不变 *  * @param context *            上下文对象 * @param spValue *            需要转换的值 * @return 转换后的值 */public int sp2px(Context context, float spValue) {    if (context == null) {        return 0;    }    final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;    return (int) (spValue * fontScale + 0.5f);}/** * 将px值转换为dip或dp值,保证尺寸大小不变 *  * @param pxValue * @param scale *            (DisplayMetrics类中属性density) * @return */public int px2dip(float pxValue, float scale) {    return (int) (pxValue / scale + 0.5f);}/** * 将dip或dp值转换为px值,保证尺寸大小不变 *  * @param dipValue * @param scale *            (DisplayMetrics类中属性density) * @return */public int dip2px(float dipValue, float scale) {    return (int) (dipValue * scale + 0.5f);}/** * 将px值转换为sp值,保证文字大小不变 *  * @param pxValue * @param fontScale *            (DisplayMetrics类中属性scaledDensity) * @return */public int px2sp(float pxValue, float fontScale) {    return (int) (pxValue / fontScale + 0.5f);}/** * 将sp值转换为px值,保证文字大小不变 *  * @param spValue * @param fontScale *            (DisplayMetrics类中属性scaledDensity) * @return */public int sp2px(float spValue, float fontScale) {    return (int) (spValue * fontScale + 0.5f);}public int getScreenWidthctx(Context context) {    return context.getResources().getDisplayMetrics().widthPixels;}public int getScreenHeightctx(Context context) {    return context.getResources().getDisplayMetrics().heightPixels;}public float getScreenDensity(Context context) {    return context.getResources().getDisplayMetrics().density;}

}

原创粉丝点击