Исправить ориентацию экрана - PullRequest
3 голосов
/ 21 ноября 2011

Я хотел исправить ориентацию экрана как альбомный режим на вкладке, т.е. на 7 "Я рассчитываю дюйм устройства в моей кодировке и устанавливаю его как:

int inch=((int)height_pixel1/(int)xdpi);
if(inch>=6){
    orientation=true;
    this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
} else {
    orientation=false;
    this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}

, и проблема в первую очередьон отображает мне ориентацию экрана в соответствии с моим требованием, но когда между ними идет обработка, то он меняет ориентацию как портретную, и снова в альбомной ориентации. Все еще происходит переключение между этими двумя ориентациями, и я хочу сделатьфиксированная ориентация для всего моего приложения ... Есть ли какое-либо свойство, которое мне здесь не хватает ??

Ответы [ 3 ]

1 голос
/ 21 ноября 2011

Создайте папку layout-xlarge-land и поместите в нее свой XML ... она должна быть предназначена для экрана landsacpe .. также Вы должны указать

android:largeScreens="true"  in manifest... 


res/layout/my_layout.xml             // layout for normal screen size ("default")
res/layout-small/my_layout.xml       // layout for small screen size
res/layout-large/my_layout.xml       // layout for large screen size
res/layout-xlarge/my_layout.xml      // layout for extra large screen size
res/layout-xlarge-land/my_layout.xml // layout for extra large in landscape orientation





 <supports-screens android:resizeable=["true"| "false"]
                      android:smallScreens=["true" | "false"]
                      android:normalScreens=["true" | "false"]
                      android:largeScreens=["true" | "false"]
                      android:xlargeScreens=["true" | "false"]
                      android:anyDensity=["true" | "false"]
                      android:requiresSmallestWidthDp="integer"
                      android:compatibleWidthLimitDp="integer"
                      android:largestWidthLimitDp="integer"/>

См http://developer.android.com/guide/topics/resources/providing-resources.html

1 голос
/ 21 ноября 2011

Попробуйте, просто установите его внутри файла AndroidManifest.xml:

<activity android:name=".ActivityName"
              android:label="@string/app_name"
              android:configChanges="orientation|keyboardHidden">  
              // Prevent application restart on orientation change
0 голосов
/ 01 сентября 2012

пожалуйста, посмотрите на это .........

supports-screens android:resizeable=["true"| "false"]
              android:smallScreens=["true" | "false"]
              android:normalScreens=["true" | "false"]
              android:largeScreens=["true" | "false"]
              android:xlargeScreens=["true" | "false"]
              android:anyDensity=["true" | "false"]
              android:requiresSmallestWidthDp="integer"
              android:compatibleWidthLimitDp="integer"
              android:largestWidthLimitDp="integer

............... Это будет обрабатывать ваш экран

...