Jak Mogę uzyskać bieżącą orientację ekranu?
Chcę tylko ustawić kilka flag, gdy moja orientacja jest w krajobrazie, aby po odtworzeniu aktywności w OnCreate() móc przełączać między tym, co ładować w pionie a w krajobrazie. Mam już layout-land xml, który obsługuje mój układ.
public void onConfigurationChanged(Configuration _newConfig) {
if (_newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
this.loadURLData = false;
}
if (_newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
this.loadURLData = true;
}
super.onConfigurationChanged(_newConfig);
}
Over-riding onConfigurationChanged uniemożliwi Ładowanie mojego layout-land xml w orientacji poziomej.
Chcę tylko sprawdzić aktualną orientację mojego urządzenia w OnCreate (). Jak mogę to dostać?
8 answers
Activity.getResources().getConfiguration().orientation
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-03 18:00:17
int orientation = this.getResources().getConfiguration().orientation;
if (orientation == Configuration.ORIENTATION_PORTRAIT) {
// code for portrait mode
} else {
// code for landscape mode
}
Gdy nadklasa this
wynosi Context
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-08 17:55:11
W niektórych urządzeniach void onConfigurationChanged()
może ulec awarii. Użytkownik użyje tego kodu, aby uzyskać bieżącą orientację ekranu.
public int getScreenOrientation()
{
Display getOrient = getActivity().getWindowManager().getDefaultDisplay();
int orientation = Configuration.ORIENTATION_UNDEFINED;
if(getOrient.getWidth()==getOrient.getHeight()){
orientation = Configuration.ORIENTATION_SQUARE;
} else{
if(getOrient.getWidth() < getOrient.getHeight()){
orientation = Configuration.ORIENTATION_PORTRAIT;
}else {
orientation = Configuration.ORIENTATION_LANDSCAPE;
}
}
return orientation;
}
I używać
if (orientation==1) // 1 for Configuration.ORIENTATION_PORTRAIT
{ // 2 for Configuration.ORIENTATION_LANDSCAPE
//your code // 0 for Configuration.ORIENTATION_SQUARE
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-30 08:54:54
int rotation = getWindowManager().getDefaultDisplay().getRotation();
To da wszystkie orientację jak normalna i odwrotna
I zajmij się tym jak
int angle = 0;
switch (rotation) {
case Surface.ROTATION_90:
angle = -90;
break;
case Surface.ROTATION_180:
angle = 180;
break;
case Surface.ROTATION_270:
angle = 90;
break;
default:
angle = 0;
break;
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-13 07:17:53
getActivity().getResources().getConfiguration().orientation
To polecenie zwraca wartość int 1 dla portretu i 2 dla krajobrazu
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-05 06:35:28
W przypadku, gdyby ktoś chciał uzyskać sensowny Opis orientacji (taki jak przekazywany do {[0] } z tymi reverseLandscape
, sensorLandscape
i tak dalej), wystarczy użyć getRequestedOrientation()
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-20 13:30:40
W klasie aktywności użyj poniższej metody:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Checks the orientation of the screen
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
setlogo();// Your Method
Log.d("Daiya", "ORIENTATION_LANDSCAPE");
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
setlogoForLandScape();// Your Method
Log.d("Daiya", "ORIENTATION_PORTRAIT");
}
}
Następnie, aby zadeklarować, że Twoja aktywność obsługuje zmianę konfiguracji, edytuj odpowiedni element w pliku manifestu, aby zawierał atrybut android:configChanges
z wartością, która reprezentuje konfigurację, którą chcesz obsłużyć. Możliwe wartości są wymienione w dokumentacji atrybutu android:configChanges
(najczęściej używanymi wartościami są "orientation", aby zapobiec ponownemu uruchomieniu po zmianie orientacji ekranu i "keyboardHidden", aby zapobiec uruchamia się ponownie po zmianie dostępności klawiatury). Możesz zadeklarować wiele wartości konfiguracyjnych w atrybucie, oddzielając je za pomocą potoku | znaku.
<activity android:name=".MyActivity"
android:configChanges="orientation|keyboardHidden"
android:label="@string/app_name">
To wszystko!!Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-16 07:13:03
Jeśli chcesz nadpisać tę metodę onConfigurationChanged i nadal chcesz, aby robiła podstawowe rzeczy, rozważ użycie super.onConfigyrationChanged () jako pierwsze polecenie w nadpisanej metodzie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-14 11:52:24