3

実行時にコードを使用してボタンの高さと幅を変更しようとしています。

私のレイアウトxml

   <Button
    android:id="@+id/button1"
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/button2"
    android:background="@drawable/button1_background" 
    />

主な活動コード

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
   //some other code
   int displaywidth= getResources().getDisplayMetrics().widthPixels;
    Button f_button = (Button) findViewById(R.id.button1);
    Log.d("F_button width before is",""+ f_button.getWidth());
    f_button.setWidth(displaywidth/2);
    Log.d("F_button width after is",""+ f_button.getWidth());
//some other code
}

Logcat では、幅の前後の F_button が両方とも「0」として表示されます。

私は何を間違っていますか。

ありがとう!。

4

4 に答える 4

4

私はそれがあなたを助けるかもしれないと思う..

Button btn = (Button)findViewById(R.id.btn1); 

android.widget.LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,60); // 60 is height you can set it as u need

btn.setLayoutParams(lp);
于 2013-04-09T09:29:31.653 に答える
1

以下のコードを Java で使用します (アクティビティ)

  f_button.setLayoutParams (new LayoutParams(50, LayoutParams.WRAP_CONTENT));
于 2013-04-09T09:07:11.860 に答える
0

はい、私は長い間問題を解決しようとしました。Ajay のソリューションは私を成功に導きました。Kotlin プログラマーの場合、次のようになります。

btn.layoutParams = LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, 60)
于 2020-05-31T22:47:40.677 に答える