2011-12-09 12 views
0

私はonroid:layout_heightをonCreate中に動的に指定する方法はありますか?

アンドロイド設定したい:私のアプリケーションの起動時にlayout_height = "wrap_content" いくつかのピクセル(int型)へ

を。これはtextViewであり、これの背後にある理由は、私は、onCreateメソッドが呼び出されたときに計算される、私の最後からのいくつかの入力に基づいてtextViewのダイナミックの高さを求めているということです。

これは可能ですか?はいの場合、どの例も素晴らしいでしょう。

この

<TextView 
       android:id="@+id/sometext" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:fadingEdge="vertical" 
       android:background="@drawable/dropshadow" 
       android:scrollbars="vertical" 
       android:text="Getting data on your slow n/w..." 
       android:textColor="#ffffff" 
       /> 

答えて

6

ちょうどビューのレイアウトのparamsを編集ように私のTextViewのXMLが見え追加するのを忘れ。

TextView v = (TextView) findViewById(R.id.sometext); 
LayoutParams lp = v.getLayoutParams(); 
lp.height = 50; 
v.setLayoutParams(lp); 

この例では、表示が50ピクセル高くなります。

多くのデバイス仕様のために、レイアウトにピクセル寸法を使用することは一般的に推奨されていません。むしろdp (密度に依存しないピクセル)を代わりに使用してください。あなたは(ここPXに50dp)、次のようにDP値からをピクセル寸法を計算することができます。alextsc

float dp = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 50, 
            getResources().getDisplayMetrics()); 
+0

感謝を。しかし、私の問題はこれを反映していないことです。私のコードはこれです。 \t \t ViewGroup.LayoutParams lp = sometext.getLayoutParams(); \t \t lp.height = 10; \t \t sometext.setLayoutParams(lp); –

+0

このサンプルで使用されているように、 'findViewById()'を使用してtextviewへの参照を取得していますか?または、コードから新しいビューを作成しますか?(レイアウトに追加しないでください)*?また、正しいLayoutParamsをインポートしたかどうかテストしてください。フレームワークにかなりの数があります。右側のものは 'ViewGroup.LayoutParams'です。 –

+0

こんにちはalextsc、それは働いた。 apkファイルがキャッシュされたようです。 xmlからいくつかのものを削除しても、それはまだうまくいきました。 .apkを削除してしまえば、もう一度作成して、変更を見ることができます。ありがとう –

関連する問題