Is there a way to specify an alternative background image/color for a Button in the XML file that is going to be applied onClick
, or do I have to do a Button.setBackground()
in the onClickListener
?
To set Android Button background color, we can assign android:backgroundTint XML attribute for Button in layout file with the required Color Value. To programmatically set or change Android Button background color, we may call pass the method Button.
<selector> and <item> are used when you are creating a custom button. The <selector> tag is the root tag and it can contain multiple <item> tags, the only attribute it contains is the xmlns:android .
To change the image by using code:
public void onClick(View v) { if(v.id == R.id.button_id) { ButtonName.setImageResource(R.drawable.ImageName); } }
Or, using an XML file:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@drawable/login_selected" /> <!-- pressed --> <item android:state_focused="true" android:drawable="@drawable/login_mouse_over" /> <!-- focused --> <item android:drawable="@drawable/login" /> <!-- default --> </selector>
In OnClick
, just add this code:
ButtonName.setBackgroundDrawable(getResources().getDrawable(R.drawable.ImageName));
In the latest version of the SDK, you would use the setBackgroundResource
method.
public void onClick(View v) { if(v == ButtonName) { ButtonName.setBackgroundResource(R.drawable.ImageResource); } }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With