Выход HDMI в портретном режиме в разобранном виде на Android (Samsung Galaxy S III)

В настоящее время при подключении внешнего монитора к телефону Android, который поддерживает зеркалирование, телефон предполагает, что внешний монитор настроен в альбомной ориентации. Таким образом, когда телефон удерживается вертикально (в данном случае Galaxy S III) в портретной ориентации, видеовыход на дисплей является портретным, но с черными полосами по центру с обеих сторон. Конечно, когда телефон держится горизонтально, вывод заполняет внешний дисплей.

Что я ищу, так это способ заставить Galaxy S III отражать свой экран таким образом, чтобы, когда он удерживается в портретной ориентации, вывод заполнял внешний дисплей. Он должен работать на Android — я не говорю о конкретном приложении в частности, он должен работать последовательно во всех приложениях.

Внешний дисплей должен быть установлен вертикально, поэтому важно, чтобы вывод Galaxy S III в портретной ориентации полностью заполнял внешний дисплей и имел правильную ориентацию.

Может ли кто-нибудь дать мне совет, с чего начать? Я уже просмотрел исходный код S III и не смог найти никаких подсказок (у меня нет опыта написания собственных драйверов для Android). Это будет для вариантов для США (в частности, Verizon, хотя видеооборудование — графический процессор Adreno 225 и чип контроллера SiI9234 MHL — одинаково во всех вариантах для США). Возможно, кто-то более опытный в этой области сможет пролить свет на этот вопрос.


person Eric Ahn    schedule 05.07.2012    source источник


Ответы (1)


К сожалению, это невозможно. вам придется разработать свое приложение в ландшафтном режиме, а затем повернуть все ваши представления/контент, чтобы казалось, что оно находится в вертикальном портретном режиме. Одним из вариантов для этого будет анимация. то есть:

поворотанимация.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);

Также вы можете ознакомиться с этим постом:

Вертикальная (повернутая) метка в Android

person SunnySonic    schedule 07.10.2012