当按钮被点击时更改按钮的drawableLeft

4

我有一个带有drawableLeftButton,当我点击它时,我只想更改drawableleft为另一张图片。我需要使用什么java代码?

XML

<Button
    android:id="@+id/docli_btn_apagar"
    android:layout_width="200dp"
    android:layout_height="70dp"
    android:background="@android:color/transparent"
    android:onClick="ApagarLinha"
    android:drawableLeft="@drawable/trash"
    android:text="@string/apagar" 
    android:textAppearance="?android:attr/textAppearanceLarge"/>

来吧,你能自己写一点代码的,不是吗? - class stacker
你的意思是在按下不同的图像时,当你松开按钮后返回到原始可绘制状态,对吗? - Pratik
没有问题,我希望在点击后能够更改图像。 - Celta
2个回答

6
这将在你的按钮的onClick()处理程序中调用。
// get your button
Button docli_btn_apagar = (Button) findViewById(R.id.docli_btn_apagar );

// get the drawable
Drawable img = getContext().getResources().getDrawable( R.drawable.smiley );

// set the drawable left
docli_btn_apagar.setCompoundDrawablesWithIntrinsicBounds( img, null, null, null );

或者,另一种选择是:
// You can skip the drawable object directly, by using ints/IDs
docli_btn_apagar.setCompoundDrawablesWithIntrinsicBounds(R.drawable.smiley, 0, 0, 0);

1
public class AsyncClassTest extends Activity {

String strMessage;
private Button button;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    button = (Button) findViewById(R.id.docli_btn_apagar);
    button.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View view) {
            ((Button) view).setCompoundDrawables(getResources().getDrawable(android.R.drawable.btn_plus), null, null, null);
        }
    });
}
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接