私は2つのタブレットを持っています:
1 サムスン Android 3.0
DisplayMetrics {density=1.0, width=600, height=976,
scaledDensity=1.0, xdpi=161.55031, ydpi=155.51021}
1 低コスト デバイス、Android 2.3.3
DisplayMetrics {density=1.0, width=480, height=800,
scaledDensity=1.0, xdpi=160, ydpi=160.42105}
画面サイズごとに異なるレイアウトを使用すると、両方のデバイスが large-long で mdpi と表示されるため、レイアウト フォルダー名では区別できません... 問題は次のとおりです。
textSize="20dp" で TextView を使用します
最初のデバイスでは、テキストの幅は画面の半分ですが、2 番目のデバイスではそれよりも大きくなります (画面幅の 80%)。なんで?dp (px ではなく) を使用すると、両方のデバイスでテキストが同じように表示されると思います。spでも試しましたが、何も変わりません...
(例としてTextViewを使用しましたが、レイアウト内のすべての要素で同じ問題があります:ボタンのサイズなど)
「layout-w600dp」などのレイアウト フォルダ名を使用しようとしますが、Android 3.2 で導入されたものはそうではありません。
onLayout() のコードで要素のサイズを変更できることは知っていますが、そうしたくありません...
なにか提案を?
アップデート
テーマを使用してレイアウトの問題を解決しました:実行時に特定の dimens.xml をアクティブにします