0

次のようなものを使用して、layout_width と layout_height を textview 要素に動的に設定できると思います。

LayoutParams lparams = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.FILL_PARENT);
centimeterLayout.addView(textview, lparams);

しかし、レイアウトの幅と高さを他の単位で設定するにはどうすればよいですか?たとえば、テキスト ビューのレイアウトの幅を 20 mm に設定したいとします。それ、どうやったら出来るの?

4

1 に答える 1

1

LayoutParams定数( FILL_PARENTWRAP_CONTENT)またはピクセル値のいずれかを取ります。ミリメートルを使用したいので、ミリメートルの寸法をピクセルの寸法に変換する必要があります。そうするのはとても簡単です:

Resources r = getResources();
float px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_MM, 20, 
                                     r.getDisplayMetrics());

この例では、20 mm が で使用できるピクセル寸法に変換されますLayoutParamsTypedValue.COMPLEX_UNIT_DIPdp/dip¹など、他のディメンションも使用できます。引数の定数を変更するだけです。Android ドキュメントには、使用可能な寸法のリストがあります。

¹密度に依存しないピクセル。さまざまな画面サイズと密度に合わせて調整できる、強く推奨される寸法です。mm を使用するのは最善の方法ではありません。なぜなら、テキストはおそらく大きな画面では問題なく表示され、小さな画面の大部分を埋めるか、またはその逆になるからです。これは理想的ではありません。フォントサイズについてもspをお勧めします。詳しくは寸法表をご覧ください。

于 2011-10-09T11:13:22.670 に答える