我正在使用午夜流媒体框(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吗?
答案 0 :(得分:2)
当我请求用于渲染视频的屏幕宽度和高度时,我只得到了1280x720而不是1920x1080。
这是因为您的手机(或任何“午夜流媒体盒”)将在外接显示器上显示1280x720。
知道为什么Android只使用720p?
在Android 3.0和Android 4.2之间通过HDMI支持外部显示器的设备可以执行以下两项操作之一:
不提供第三方应用投放到显示器的任何方式,或
使用设备的原始分辨率或与其接近的内容
例如,将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