Android TV开发之模拟器的设置

在进行Android TV开发时,会碰见模拟器显示的效果跟在盒子上或电视上差异很大,屏幕的大小都是1920*1080的,为什么会差别这么大呢,原因就是像素密度的问题。我们可以用一下代码进行测试:

DisplayMetrics dm =getResources().getDisplayMetrics();
        int w_screen = dm.widthPixels;
        int h_screen = dm.heightPixels;
        ToastUtil.showToast( "屏幕尺寸1:宽度 = " + w_screen + "高度 = " + h_screen + "密度 = " + dm.densityDpi);

会发现,在盒子上的密度值和模拟器上的密度值不一样,这就需要修改模拟器的pixel-density的值。在android studio 的Virtual Manager上默认提供的是xhdpi的分辨率,density的值为320。如果这个值和盒子上的值不一致,就会导致,显示差异。我们可以用如下方法,创建和盒子的密度值一致的模拟器:

1.在Virtual Configuration界面上选择一个1920*1080的配置,右键,export,存储为xml文件。

2.然后打开存储的xml文件,修改d:name节点的值和d:pixel-density值。如何修改,下面有个对应关系:

   xhdpi   320

   hdpi     240

   mdpi    160

3.修改完毕后在Virtual Configuration界面上,点击Import Hardware Profiles,选中刚才修改过的文件,

   导入配置,点击右下角的刷新按钮,完成后在TV 的列表中就会新增一个device definition。就可以用这个device definition

   来创建模拟器,就可以在模拟器上运行app,并达到跟真实盒子或电视基本一致的显示效果。

相关推荐