3

私はAndroidアプリケーションを持っています。その中にはたくさんのボタンがありますが、これらのボタンは実行時に作成されます。幅button.setwidth(300)を設定すると、幅が300pxに設定されます。幅をdpで設定したい。回避策はありますか?

4

3 に答える 3

12

TypedValue.applyDimensiondpのピクセル数を取得するにはを使用する必要があります。次に例を示します。

DisplayMetrics dm = getResources().getDisplayMetrics();
float dpInPx = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DP, 300, dm);

これにより、プログラムで300dpのピクセル値が得られます。

乾杯

于 2012-06-13T07:39:09.997 に答える
2

Androidには、dpでボタンのサイズを設定するための個別の方法はありません。必ず:

//Find screen density scale factor
final float scale = getContext().getResources().getDisplayMetrics().density;
myButton.setWidth((int)(100 * scale));
myButton.setHeight((int)(50 * scale));
于 2012-06-13T07:41:04.560 に答える
1

setWidth(300dp)はありません。回避策は、表示サイズを取得し、それに応じて300px変数を調整することです。

素敵なレイアウトを作成するためのより良い方法があると言わなければなりません。ネストされたlinearlayoutsとlayout_weightsを使用してみましたか?

于 2012-06-13T07:39:16.140 に答える