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。知道为什么 Android 只使用 720p 吗?

4

2 回答 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

于 2013-01-02T22:24:23.207 回答
2

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

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

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

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

  1. 不提供任何方式让第三方应用程序投射到显示器上,或

  2. 使用设备的原始分辨率,或接近它的东西

例如,将 WXGA800 平板电脑连接到支持 1080p 的显示器会产生 720p 的图像,因为 Android 会将系统栏的大小扩大到 80 像素,并将高于它的所有内容镜像到显示器。显示器的分辨率不是约束——设备的分辨率才是。

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

于 2012-12-27T23:35:44.150 回答