Do tego, myślę, że trzeba będzie zakasać dwie rzeczy w jednym.
- Najpierw Uzyskaj rozmiar ekranu urządzenia
- , a następnie w oparciu o wynik, włączyć lub wyłączyć orientację.
W pierwszej części
int screenSize = getResources().getConfiguration().screenLayout &
Configuration.SCREENLAYOUT_SIZE_MASK;
switch(screenSize) {
case Configuration.SCREENLAYOUT_SIZE_LARGE:
Toast.makeText(this, "Large screen",Toast.LENGTH_LONG).show();
break;
case Configuration.SCREENLAYOUT_SIZE_NORMAL:
Toast.makeText(this, "Normal screen",Toast.LENGTH_LONG).show();
break;
case Configuration.SCREENLAYOUT_SIZE_SMALL:
Toast.makeText(this, "Small screen",Toast.LENGTH_LONG).show();
break;
default:
Toast.makeText(this, "Screen size is neither large, normal or small" , Toast.LENGTH_LONG).show();
}
kredytowe: https://stackoverflow.com/a/11252278/450534 (Roztwór był łatwo dostępny na SO)
I wreszcie, w zależności od wyniku powyższego kodu, czy z poniższych:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
LUB
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
+1 za "Rozwiązanie było łatwo dostępne w SO" – Pragnani
@Pagani: Wymagany kredyt tam, gdzie jest należny eh. Nie mogę twierdzić, co nie jest moje ;-) –
Doceniam, że to rozwiązanie było łatwo dostępne w SO, ale nie mogłem go znaleźć przez tytuł pytania, ponieważ na tym etapie nie wiedziałem, że robienie tego programowo było jedynym sposobem. Miałem nadzieję, że wokół tego będzie jakaś konfiguracja. Dzięki i tak. – Zyga