0

私は混乱しました。ボックスの最小幅を設定しようとしています。すべてのデバイスで、最小幅を画面幅の 20% に設定したいと考えています。どうすればこれを達成できますか?

タブレットと XHDPI Galaxy S3 から 2 つの画面の dpWidth を取得しました。S3 の dpWidth は 300 で、タブレットは 800 です。この場合、dpWidth の 20% を計算し、それをボックスの dp 値として設定することで、プログラムでこれを行うことができます。

幅だけなので重りは使えないと思います。では、XML でこれを行うにはどうすればよいでしょうか。

また、フォローアップの質問ですが、dp はどのように役に立ちますか? 1 つのデバイスが 300 で、もう 1 つのデバイスが 800 である場合、dp の効果は劇的に変化します! なぜもっと便利な単位がないのか、つまり画面が 100 単位か何かに分割されているのか、私には理解できません。

4

1 に答える 1

3

ウェイトを使用できます。線形レイアウトの重量は、レイアウトの方向に対してのみ計算されます。したがって、水平の LinearLayout がある場合、重みは相対的な幅を制御します。そのレイアウトのアイテムを画面全体に表示する場合は、すべてを fill_parent に設定し、それに応じて重みを設定し (3:1 で 75/25% にします)、親レイアウトの幅を 0dp に設定します。結果は、指定した重みで分割されたフルスクリーン レイアウトになります。

DP は非常に便利です。1 dp は基本的に 1/160 インチです。実世界のサイズを維持したい場合は、dp を使用します。ピクセル単位で固定サイズを維持する場合は、px を使用します。フォント サイズに基づいてサイズを大きくしたい場合は、sp を使用します。

于 2013-03-04T21:38:09.170 に答える