如何获得外部显示器的原生屏幕分辨率

时间:2012-12-27 23:01:02

标签: android screen-resolution

我正在使用午夜流媒体框(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。知道为什么Android只使用720p吗?

2 个答案:

答案 0 :(得分:2)

  

当我请求用于渲染视频的屏幕宽度和高度时,我只得到了1280x720而不是1920x1080。

这是因为您的手机(或任何“午夜流媒体盒”)将在外接显示器上显示1280x720。

  

知道为什么Android只使用720p?

在Android 3.0和Android 4.2之间通过HDMI支持外部显示器的设备可以执行以下两项操作之一:

  1. 不提供第三方应用投放到显示器的任何方式,或

  2. 使用设备的原始分辨率或与其接近的内容

  3. 例如,将WXGA800平板电脑连接到支持1080p的显示器将产生720p图像,因为Android会将系统栏的大小扩展到80px并将其上方的所有内容镜像到显示器上。显示器的分辨率不是约束 - 设备的分辨率是。

    因此,720p是完全合理的。

答案 1 :(得分:2)

编辑/system/build.props文件后,我的午夜安卓流媒体框的分辨率为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