Myślę, że jest to możliwe, ponieważ zachowanie rotacji ekranu może sięgać poziomu aplikacji.Zmiana orientacji ekranu programowo za pomocą przycisku
Odpowiedz
Tak, można to zrealizować!
ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
ActivityInfo
http://developer.android.com/reference/android/content/pm/ActivityInfo.html
Skierować Link:
Button buttonSetPortrait = (Button)findViewById(R.id.setPortrait);
Button buttonSetLandscape = (Button)findViewById(R.id.setLandscape);
buttonSetPortrait.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View arg0) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
});
buttonSetLandscape.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View arg0) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
});
http://android-er.blogspot.in/2011/08/set-screen-orientation-programmatically.html
Dzięki. Ale czy ta funkcja musi być uruchamiana na zrootowanym urządzeniu? Wygląda na to, że nie działa na moim telefonie komórkowym, ale na moim zrootowanym tablecie. – Sam
Nie, to nie tak. Właściwie testowałem kod w tym linku przed wysłaniem. To działało w moim urządzeniu .. – Hariharan
OK, tak, masz rację. Właśnie przetestowałem inne urządzenie i działa dobrze. no cóż, mój Samsung Galaxy Nexus nie działa. Nie wiem dlaczego. – Sam
Tak, można ustawić orientację ekranu programowo kiedy tylko chcesz przy użyciu:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
dla orientacją pionową i poziomą odpowiednio. Metoda setRequestedOrientation() jest dostępna dla klasy aktywności, dzięki czemu można jej używać wewnątrz aktywności.
A to w jaki sposób można uzyskać bieżącej orientacji ekranu i ustawić ją adekwatnie zależności od jego aktualnego stanu:
Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
final int orientation = display.getOrientation();
// OR: orientation = getRequestedOrientation(); // inside an Activity
// set the screen orientation on button click
Button btn = (Button) findViewById(R.id.yourbutton);
btn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
switch(orientation) {
case Configuration.ORIENTATION_PORTRAIT:
setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
break;
case Configuration.ORIENTATION_LANDSCAPE:
setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
break;
}
}
});
Zrobione stąd: http://techblogon.com/android-screen-orientation-change-rotation-example/
EDIT
także można uzyskać orientację ekranu za pomocą funkcji: Configuration
:
Proponuję użyć 'getRequestedOrientation()', aby uzyskać bieżącą orientację ekranu: http://stackoverflow.com/a/21909327/1037294 –
Wyczerpująca odpowiedź. – pdegand59
Użyj tego, aby ustawić orientację ekranu:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
lub
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
i nie zapomnij dodać go do manifestu:
android:configChanges = "orientation"
w miarę możliwości , proszę nie używać SCREEN_ORIENTATION_LANDSCAPE lub SCREEN_ORIENTATION_PORTRAIT. Zamiast tego użyj:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
Umożliwia to użytkownikowi orientację urządzenia odpowiednio do orientacji poziomej lub orientacji pionowej. Jeśli kiedykolwiek musiałeś zagrać w grę z wbijanym kablem do ładowania, to wiesz dokładnie, dlaczego posiadanie obu dostępnych orientacji jest ważne dla użytkownika.
Uwaga: w przypadku telefonów, przynajmniej kilku, które sprawdziłem, umożliwia on tylko tryb portretowy "prawą stroną do góry", jednak funkcja SENSOR_PORTRAIT działa poprawnie na tabletach.
Uwaga: Ta funkcja została wprowadzona w API poziom 9, więc jeśli trzeba obsługiwać 8 lub niższy (mało prawdopodobne w tym momencie), a następnie zamiast używać:
setRequestedOrientation(Build.VERSION.SDK_INT < 9 ?
ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE :
ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
setRequestedOrientation(Build.VERSION.SDK_INT < 9 ?
ActivityInfo.SCREEN_ORIENTATION_PORTRAIT :
ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
- 1. Zmiana orientacji ekranu - Android 3.2 na VirtualBox
- 2. Android orientacji ekranu czujnika
- 3. Zmiana orientacji papieru Window.print()
- 4. Karta Zmiana programowo za pomocą SlidingTabLayout
- 5. Zmiana rozmiaru ekranu systemowego programowo Android N
- 6. Android - radzenie sobie z dialogiem na ekranie Zmiana orientacji ekranu
- 7. Zmiana położenia kontrolki na formularzu Windows programowo za pomocą VB.net?
- 8. Zmiana rozmiaru przycisku w iOS programowo
- 9. ViewPager + FragmentStatePagerAdapter + zmiana orientacji
- 10. Skuteczna zmiana jasności ekranu
- 11. Jak programowo zamknąć program za pomocą przycisku Kliknij przycisk
- 12. Zmiana koloru tła przycisku za pomocą wzoru MVVM w WPF
- 13. Zmiana tapety programowo za pomocą C++ i Windows api
- 14. Zmiana UIView przy zmianie orientacji
- 15. znajdowanie orientacji za pomocą getRotationMatrix() i getOrientation()
- 16. Uzyskiwanie orientacji za pomocą żyroskopu i akcelerometru
- 17. zmiana locale programowo
- 18. Zmiana rozmiaru UIView programowo
- 19. Zmiana orientacji etykiety i legendy wykresu
- 20. aplikacja zawieszała się, gdy zmiana orientacji
- 21. Skrobanie ekranu za pomocą Pythona
- 22. Przycisk wyłączania za pomocą przycisku wyboru
- 23. Android orientacji ekranu różni się między urządzeniami
- 24. Odrzuć okno po zmianie orientacji ekranu
- 25. Problem z obsługą orientacji ekranu Android:
- 26. Wymuszona zmiana orientacji czasami nie działa
- 27. Programowo przerwać aktywny wygaszacz ekranu?
- 28. za pomocą przycisku {} po średnikiem
- 29. Ukrywanie przycisku za pomocą jquery
- 30. Usuwanie znaków za pomocą przycisku
Czy próbowałeś tego? : http://stackoverflow.com/questions/14873755/change-screen-orientation-in-android-without-reloading-the-activity –