Jawaban:
Ya itu bisa diimplementasikan!
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
Lihat tautannya:
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
Ya, Anda dapat menyetel orientasi layar secara terprogram kapan pun Anda mau menggunakan:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
untuk mode lanskap dan potret. Metode setRequestedOrientation () tersedia untuk kelas Activity , sehingga bisa digunakan di dalam Activity Anda.
Dan inilah cara Anda mendapatkan orientasi layar saat ini dan mengaturnya secara memadai bergantung pada statusnya saat ini:
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;
}
}
});
Diambil dari sini: http://techblogon.com/android-screen-orientation-change-rotation-example/
EDIT
Selain itu, Anda bisa mendapatkan orientasi layar menggunakan Configuration
:
Activity.getResources().getConfiguration().orientation
getRequestedOrientation()
untuk mendapatkan orientasi layar saat ini: stackoverflow.com/a/21909327/1037294
getRequestedOrientation()
memberi Anda UNSPECIFIED
saat Anda memulai aplikasi. Jadi dengan pendengar di atas itu tidak akan mengubah layar dan jika Anda menambahkan UNSPECIFIED
ke switch
itu harus menempatkan layar di salah satu Portrait / Landscape posisi pertama.
Jika memungkinkan, jangan gunakan SCREEN_ORIENTATION_LANDSCAPE atau SCREEN_ORIENTATION_PORTRAIT. Sebagai gantinya gunakan:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
Ini memungkinkan pengguna untuk mengarahkan perangkat ke salah satu orientasi lanskap, atau salah satu orientasi potret. Jika Anda pernah bermain game dengan kabel pengisi daya didorong ke perut Anda, maka Anda tahu persis mengapa memiliki kedua orientasi tersedia penting bagi pengguna.
Catatan: Untuk ponsel, setidaknya beberapa yang saya periksa, ini hanya memungkinkan mode potret "sisi kanan atas", namun SENSOR_PORTRAIT berfungsi dengan baik di tablet.
Catatan: fitur ini diperkenalkan di API Level 9, jadi jika Anda harus mendukung 8 atau lebih rendah (sepertinya tidak pada saat ini), gunakan:
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);
Gunakan ini untuk mengatur orientasi layar:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
atau
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
dan jangan lupa untuk menambahkan ini ke manifes Anda:
android:configChanges = "orientation"
"orientation|screenSize"
, Lihat di sini: developer.android.com/guide/topics/resources/…
Kode yang berfungsi:
private void changeScreenOrientation() {
int orientation = yourActivityName.this.getResources().getConfiguration().orientation;
if (orientation == Configuration.ORIENTATION_LANDSCAPE) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
showMediaDescription();
} else {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
hideMediaDescription();
}
if (Settings.System.getInt(getContentResolver(),
Settings.System.ACCELEROMETER_ROTATION, 0) == 1) {
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
}
}, 4000);
}
}
panggil metode ini di klik tombol Anda