タブレット用プログラムの書き止め

android OS & iPadOS の記録。

【kotlin】 画面回転時の画像回転の考察

2024-02-20 03:15:56 | Android studio 日記

画面が回転した時に縦長なら1枚表示で横長なら左右2枚表示にできる目処が立った。
ただ、回転時の画像表示タイミングが良くない。

回転後に切り替わればまぁ良しとしたいが、回転前で画像が切り替わっての横倒しから正常に回転される。
同一画像なら繋がりは自然だけど。

onCreate()で画像をセットすると横倒し表示からの正常位置への回転はシステム決定のよう。
横倒しで表示されるのが次の画像だから凄い違和感がある。
画面回転通知の時だけタイムラグ表示機構を付けないといけないかも。面倒くさ!

override fun onConfigurationChanged(newConfig: Configuration)
ここでimageViewを非表示にセットしたけど消えることはなかった。
恐らく、スクリーンショットのように切り取っているのであろう。

だとすると回転アニメーション利用だろうからアニメーション状態が調べられれば対策取れそうなんだけど…。

あとは画面回転ロックで自前で回転させるとか。面倒くさくさだ!

 

 

ここまで、いろんなタイミングでテスト画像を嵌めたんだけど制御できなかった。
回転の再描画の時だけに回転用画像をonCreate()でimageViewにセットする。
そして、回転完了で本来の画像をセットする。が、一番見栄えが良いと思うんだけど……。

 

途中見つけた画面の向きについての覚え書き。

現在の向きを調べる時は

    fun getOrientation(activity: Activity): Int  {
        val conf: Int
        activity.resources.configuration.orientation.also { conf = it }
        return conf
    }


このメソッドを使用するときは

    val conf: Int = getOrientation(this) //Fragmentで使用は、this -> getActivity() かな

    when (conf) {
        Configuration.ORIENTATION_LANDSCAPE-> //
        Configuration.ORIENTATION_PORTRAIT-> //
        Configuration.ORIENTATION_UNDEFINED -> //
        else-> 
    }

 

 

 


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする