(1)获取屏幕相关信息
DisplayMetrics metric = new DisplayMetrics(); // getWindowManager().getDefaultDisplay().getMetrics(metric); metric = this.getResources().getDisplayMetrics();// 这行代码可以用在自定义view中,比上面的代码适用范围广 int width = metric.widthPixels;// 屏幕宽度 int height = metric.heightPixels;// 屏幕高度 float density = metric.density;// 屏幕密度(0.75/1.0/1.5/2.0/3.0) int densityDpi = metric.densityDpi;// 屏幕密度Dpi(120/160/240/320/480)
顺便说下屏幕适dp2px和px2dp
public class DensityUtil { /** * 根据手机的分辨率从 dp 的单位 转成为 px(像素) */ public static float dip2px(Context context, float dpValue) { final float scale = context.getResources().getDisplayMetrics().density; return dpValue * scale; } /** * 根据手机的分辨率从 px(像素) 的单位 转成为 dp */ public static float px2dip(Context context, float pxValue) { final float scale = context.getResources().getDisplayMetrics().density; return pxValue / scale; } }(2)获获取状态栏高度
public int getStatusBarHeight() { int result = 0; int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android"); if (resourceId > 0) { result = getResources().getDimensionPixelSize(resourceId); } return result; }
(3)手机型号与IMEI
private String getDeviceIds() { TelephonyManager tm = (TelephonyManager) this .getSystemService(TELEPHONY_SERVICE); return tm.getDeviceId(); } private String getModelNumber() { return android.os.Build.MODEL; }
(4).应用中根据当前android系统版本号来加载不同的设置
privatestatic final boolean USE_TRANSITION_FRAMEWORK = Build.VERSION.SDK_INT>= Build.VERSION_CODES.KITKAT; Build.java publicstatic class VERSION { publicstatic final int SDK_INT =SystemProperties.getInt( "ro.build.version.sdk",0); publicstatic finalString SDK =getString("ro.build.version.sdk"); }
//当前开发代号
Build.VERSION.CODENAME
//源码控制版本号
Build.VERSION.INCREMENTAL
//版本字符串
Build.VERSION.RELEASE
//版本号
Build.VERSION.SDK
//版本号
Build.VERSION.SDK_INT