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 回答