0
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >

<Button
    android:id="@+id/ImageButton3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:drawablePadding="-15sp"
    android:drawableTop="@drawable/ic_launcher"
    android:paddingTop="32sp"
    android:text="this is text"
    android:textColor="@color/Black" >
</Button>

これは私の XML 用のコードです。これを動的に作成するのに問題がありました。このボタンを作成するためのコードがどのようになるかを知る必要があります。前もって感謝します。

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
                RelativeLayout.LayoutParams.WRAP_CONTENT,
                RelativeLayout.LayoutParams.WRAP_CONTENT);

        for (int i = 0; i < 10; i++) {

            Button btn = new Button(this);
            btn.setLayoutParams(params);
            btn.setPadding(0, 32, 0, 0);
            btn.setText("MyButton");
            btn.setTextColor(color.Green);
            Drawable image = Drawable.createFromPath("@drawable/ic_launcher"); //
            // btn.setBackgroundDrawable(image);
            btn.setCompoundDrawables(null, image, null, null);
            btn.setCompoundDrawablePadding(15);
            // btn.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);

            ObjectLayout.addView(btn);
        }

これは私が持っていたものですが、それでも同じではありませんなぜ同じものを入れることができないのかわからない.

4

1 に答える 1

1

にパディングが必要な場合Drawableは、それ自体に背景パディングを設定する必要があります。DrawableDrawable

そして、setPadding(...)はの代わりにピクセルを使用しspます。

    Button myButton = new Button(/* your context, probably "this" */);
    myButton.setLayoutParams(
            new LayoutParams(
                    LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
    myButton.setPadding(0, 32, 0, 0);
    myButton.setText("this is a test");
    myButton.setTextColor(android.R.color.black);
    myButton.setBackgroundResource(R.id.ic_launcher);
于 2012-08-16T21:58:49.717 に答える