获取屏幕尺寸:
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int w = dm.widthPixels;//宽
int h = dm.heightPixels;//高
Log.i("lgq","ww==="+w+"....h==="+h);
输出:2019-07-22 11:47:30.283 27564-27564/com.tianxin.okhttptest I/lgq: ww===1080....h===1792
屏幕适配实现效果
平板大屏效果 手机屏幕效果
对比:
实现步骤
非常简单。加入资源文件,layout.xml引用即可,包括尺寸适配,字体适配
demo资源链接:Android屏幕适配资源_Android如何获取屏幕自适应大小-Android代码类资源-CSDN下载
module连接:android开发尺寸适配-Android文档类资源-CSDN下载
工具类
/*** @ClassName DensityUtil* @Description 用于手机适配的一些类* @author XiongChuanLiang<br/>(xcl_168@aliyun.com)*/public class DensityUtil {//private static final String TAG = "DensityUtil";private DensityUtil() {}public static float getDensity(Context context) { return context.getResources().getDisplayMetrics().density;}/** * 根据手机的分辨率从 dp 的单位 转成为 px(像素) */ public static int dip2px(Context context, float dpValue) { 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 getScreenWidth(Context context){return context.getResources().getDisplayMetrics().widthPixels;}/*** 屏幕高度*/public static int getScreenHeight(Context context){return context.getResources().getDisplayMetrics().heightPixels;}/* * 获取控件宽 */ public static int getWidth(View view) { int w = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED); int h = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED); view.measure(w, h); return (view.getMeasuredWidth()); } /* * 获取控件高 */ public static int getHeight(View view) { int w = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED); int h = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED); view.measure(w, h); return (view.getMeasuredHeight()); } }