1、原理
在android中,只要保证 分辨率、屏幕尺寸、dpi 三者相同就可以基本上做到保持与真机一致,
下面提供获取参数的方法
2、获取机型参数的方法
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
//这里获取高度不包括状态栏,所以获取的高度会有点差别
Log.e("test", "width: " + dm.widthPixels + ",height:" + dm.heightPixels + ",density" + dm.density
+ ",XDpi:" + dm.xdypi + ",Ydpi:" + dm.ydpi + ",dpi" + dm.densityDpi);
3、具体配置不同型号的android的方法
在android中只要一个配置文件就可以生成一个模拟器,而这个配置文件是可以通过任意模拟器导出的,然后再更改这个配置文件中的一些参数,最后再导入即可。
-
第一步:
在配置模拟器的界面选择任意一个模拟器,右击选择Export,然后将该配置文件存放到自己的电脑上 -
如果适配的为平板,建议从平板模拟器中导出配置文件
-
如果适配的为手机,建议从手机模拟器中导出配置文件
-
第二步:
打开刚才的配置文件,把上面的得到的参数依次修改里面的 分辨率、屏幕尺寸、dpi
-
第三步:
把刚才修改后的模拟器配置文件导入AndroidStudio 中即可
4、关于 px 与 dp 的转换
px 为标准的物理单位
dp 为android中的密度单位,根据不同手机的dpi所显示的大小不同,在android中不能用px
具体转换
1dp = 1 * (dpi / 160)
其中这个比例 (dpi / 160) 可以直接通过getResources().getDisplayMetrics().density获得
【案例】
//为text设置100dp的宽高
int dpiAgrs= getResources().getDisplayMetrics().density;
new ViewGroup.LayoutParams(100 * dpiAgrs,100 * dpiAgrs);