目前,当您将外接显示器连接到支持镜像的Android手机时,手机会假设外接显示器是横向设置的.因此,当手机垂直握持(在这种情况下,Galaxy S III)纵向时,显示器上的视频输出是纵向的,但是两侧都是黑条.当然,当手机水平放置时,输出会填充外部显示器.
我正在寻找的是一种强制Galaxy S III镜像其屏幕的方法,这样当它以纵向方向保持时,输出将填充外部显示器.它必须适用于Android – 我不是特别谈论特定的应用程序,它需要在所有应用程序中一致地工作.
外部显示器将垂直安装,因此在纵向方向上Galaxy S III的输出必须完全填充并在外部显示器上具有正确的方向.
谁能给我任何关于从哪里开始的建议?我已经查看了S III的源代码,但却找不到任何线索(我在Android上编写自己的驱动程序时没有经验).这将适用于美国版本(特别是Verizon,尽管视频硬件 – Adreno 225 GPU和SiI9234 MHL控制器芯片 – 在所有美国版本中都是相同的).也许在这个领域更有经验的人可以对此有所了解.
解决方法:
不幸的是,这是不可能的.您必须以横向模式开发应用程序,然后旋转所有视图/内容,使其看起来处于垂直纵向模式.一种选择是动画.即:
rotateAnimation.xml:
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="0"
android:toDegrees="-90"
android:pivotX="50%"
android:duration="0"
android:fillAfter="true" />
你的代码:
TextView text = (TextView)findViewById(R.id.txtview);
text.setText("rotated text here");
RotateAnimation rotate= (RotateAnimation)AnimationUtils.loadAnimation(this,R.anim.rotateAnimation);
t.setAnimation(rotate);
你也可以看看这篇文章:
Vertical (rotated) label in Android