端末の縦横を切り替えてもMediaPlayerの再生を停止しない方法

困っている人が多いようなのでまとめました。

Androidでは画面の縦横が切り替わると、Activity が一度終了してしまいます。
が、それを回避する方法があります。

AndroidManifest の該当 Activity に下記のように指定すると終了させないようにすることができます。

# keyboardHidden は IS01 など物理キーボードがある機種のために念のため

こう指定すると、Activity を終了させない代わりに onConfigurationChanged() が呼ばれます。
この中で、画面サイズを再計算して再描画する記述をすれば OK です。

[java]
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
setPortrait(); // ごにょごにょ画面サイズを計算して縦画面をセットする
} else {
setLandscape(); // ごにょごにょ画面サイズを計算して横画面をセットする
}
}
[/java]

ちなみにパラメータなどについて丁寧に解説していただいている記事がこちらにあります。
http://y-anz-m.blogspot.com/2010/03/android.html

Share on Facebook0Share on Google+0Tweet about this on TwitterBuffer this pageEmail this to someone