-1
は基本的に私の目標は、landscape
は常に信頼性の高い方向性を持っている
私の心に来て最初に考えたためportrait
オリエンテーションと1/6画面の1/3に正確にいくつかのカスタムView
サイズを設定することです単にいくつかのmSize
変数を計算し、このようOnMeasure
でView
にそれを設定することです:
mSize = (AContext.getScreenSize().x/(orientation == Configuration.ORIENTATION_PORTRAIT ? 3 : 6)
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(mSize|MeasureSpec.EXACTLY, mSize|MeasureSpec.EXACTLY);
}
と私は回転までは、うまく働いています画面。事は、画面がView
初期化を回転させ、サイジングされたときに前orientation
値が実際に変更されますと呼ばれているということなので、その結果は、それが最初にportrait
向きで開かれた場合、それは、1/3 landscape
も行くことであり、他の道の周りに。
私は私のような何かを行うことができますことを知っている:私のActivity
ためAndroidManifest
で
android:configChanges="orientation|screenSize"
を回転を処理し、そこmSize
値を変更するonConfigurationChanged
をオーバーライドし、しかし、それはportrait
間の自動選んを無効にし、 landscape
レイアウト(.xml
ファイルからinflating
に)。だから私は両方の方向のために同じxml
ファイルで終わるよ。
orientation
の値をcontext.getResources().getConfiguration().orientation
から一貫して維持する方法はありますか?
またはIは、レイアウトが選んを有効にするためにonConfigurationChange
と、いくつかの回避策を行う必要がありますか?(私はあなたのコードでmauallyそれを行うにはしたくない)
それとも私の目標を達成するためのより良い方法があり、私は最初から間違っていますか?
私を助けてください。
@MaximG、返信用のおかげで視野サイズの割合をASSINGが、私はかなりそれが私を助けることができる方法を見ることができないスロー導入を行くことができます。いくつかの性格確認のためには、私は、向きを変えたときの1/3と1/6のビューが必要です。ここでできるの?私が画面に表示されるのは、サイズのdp値です。 –
treeviewobserverで試しましたか? – Memme