package com.llf.basemodel.utils; import android.content.Context; import android.content.SharedPreferences; import android.util.DisplayMetrics; import android.view.WindowManager; /** * Created by llf on 2017/3/2. * 设置一些基础的东西(1.dp,sp,px转化2.获取手机宽高3.缓存) */ public class SettingUtil { /** * 根据手机的分辨率从 dp 的单位 转成为 px(像素) * context.getResources().getDisplayMetrics().density 1dp对应多少px,加0.5是为了四舍五入 */ public static int dip2px(Context context, float dpValue) { //这个得到的不应该叫做密度,应该是密度的一个比例,在160dpi手机上这个值是1,dpi屏幕像素密度(是基准) final float scale = context.getResources().getDisplayMetrics().density; return (int) (dpValue * scale + 0.5f); } /** * 根据手机的分辨率从 px(像素) 的单位 转成为 dp */ public static int px2dip(Context context, float pxValue) { final float scale = context.getResources().getDisplayMetrics().density; return (int) (pxValue / scale + 0.5f); } public static int sp2px(Context context, float spValue) { //scaledDensity为字体缩放比例 float fontScale = context.getResources().getDisplayMetrics().scaledDensity; return (int) (spValue * fontScale + 0.5f); } public static int px2sp(Context context, float pxValue) { float fontScale = context.getResources().getDisplayMetrics().scaledDensity; return (int) (pxValue / fontScale + 0.5f); } public static int getScreenWidth(Context context) { WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); DisplayMetrics outMetrics = new DisplayMetrics(); windowManager.getDefaultDisplay().getMetrics(outMetrics); return outMetrics.widthPixels; } public static int getScreenHeight(Context context) { WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); DisplayMetrics outMetrics = new DisplayMetrics(); windowManager.getDefaultDisplay().getMetrics(outMetrics); return outMetrics.heightPixels; } /** * 缓存相关 */ public static void setTagString(Context context, String tag, String value) { SharedPreferences.Editor editor = context.getSharedPreferences("cache",Context.MODE_PRIVATE).edit(); editor.putString(tag, value); editor.commit(); } public static String getTagString(Context context,String tag) { SharedPreferences sp = context.getSharedPreferences("cache", Context.MODE_PRIVATE); return sp.getString(tag, ""); } }