如何获取外接显示器的本机屏幕分辨率

4
我正在使用午夜流媒体盒子(Android 4.0.4)和分辨率为1080p的外接显示器测试我的Android应用程序。当我请求屏幕的宽度和高度来渲染视频时,我只得到了1280x720而不是1920x1080。以下是我使用的代码。
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int screenWidth = dm.widthPixels;
int screenHeight = dm.heightPixels;

顺便说一下,以下代码已添加到相应的活动中,以获得全屏但没有标题栏。

requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
                     WindowManager.LayoutParams.FLAG_FULLSCREEN);

我相当确定我的显示器分辨率设置为1080p。为什么安卓只使用了720p?

2个回答

2

编辑/system/build.props文件后,我从我的午夜Android流媒体盒子中获得了1080p分辨率。当然,我需要具有文件系统的root访问权限才能进行编辑。

将宽度和高度设置为1920和1080,如下所示。

const.window.w=1920
const.window.h=1080

然后将以下行注释掉。

#ro.platform.has.1080scale=2

请参考以下帖子获取更多详细信息。 http://androidtvbox.us/topic/maximum-resolution-of-hdmi-output/#post-4253

2
当我请求屏幕的宽度和高度进行视频渲染时,我只得到了1280x720而不是1920x1080。
这是因为您的手机(或“午夜流媒体盒子”)将在外部显示器上显示1280x720。
有没有想法为什么Android只使用720p?
在Android 3.0和Android 4.2之间通过HDMI支持外部显示器的设备会执行以下两种操作之一:
1.完全不提供第三方应用程序投影到显示器的手段,或
2.使用设备的本地分辨率或接近其分辨率的分辨率
例如,连接WXGA800平板电脑到1080p可用的显示器将导致720p图像,因为Android会将系统栏的大小扩展到80px并将以上所有内容镜像到监视器上。显示器的分辨率不是限制因素-设备的分辨率是。
因此,720p是完全合理的。

仅供参考,这并不一定是“外部”显示器,因为所讨论的设备没有内置显示器。任何插入的东西都是显示器,没有其他选择,尽管如果应用程序可以发现它是外部显示器还是呈现为内置显示器需要进行研究和测试才能确定。 - Chris Stratton

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接