2010-09 << 2010-10 >> 2010-11

2010-10-07 (木)

*[Android] 画面の向きが変わったときの処理+SurfaceViewのサイズ変更

スクリーンの向きが変わったときにViewの大きさや座標を変更したくなったので,まず,Config Changeにorientationを入れてonConfigurationChangedが呼ばれるようにしました.これで,Activityが作り直されることも無くなります.

…onConfigurationChangedって,レイアウト変更前に呼ばれるのか.これだとViewの座標やサイズが得られないので今回は無理.

仕方ないので,ViewGroupのonLayoutをオーバーライドして自分したけど,こんどはVideoViewがいうことを聞いてくれない.なんだか,VideoViewのSurfaceが再作成されるタイミングとViewのレイアウトが変更されるタイミングに違いがある気がする.

後からinvalidateとかlayoutで簡単にできそうなものだけど,実際に変更が無い場合はダメみたいです.

定期的に画面が縦か横かチェックすれば問題ないのだけど,なんだか嫌なのでもうすこし調べよう.

追記:

少し調べたら

http://www21.atwiki.jp/memodroid/pages/26.html

こんな情報が.面倒なので,他に強制的にレイアウトが変更される場合を探したら,ウインドウのフラグとかでもできそうな感じ.とりあえず,画面の向きが変わるたびに,WindowManager.LayoutParams.FLAG_FULLSCREENを変更することにした.横向きはフルスクリーンにしたかったし一石二鳥.

2010-09 << 2010-10 >> 2010-11