点击/聚焦时如何更改button的背景图像?

点击或聚焦时,我想更改button的背景图像。

这是我的代码:

Button tiny = (Button)findViewById(R.id.tiny); tiny.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Button tiny = (Button)findViewById(R.id.tiny); tiny.setBackgroundResource(R.drawable.a9p_09_11_00754); TextView txt = (TextView)findViewById(R.id.txt); txt.setText("!---- On click ----!"); } }); 

这个代码是对的吗? 它是否在其事件上调用button?

你可以在这个XML文件中实现这个,如下所示:

 <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_focused="true" android:drawable="@drawable/your_imagename_while_focused"/> <item android:state_pressed="true" android:drawable="@drawable/your_imagename_while_pressed" /> <item android:drawable="@drawable/image_name_while_notpressed" /> //means normal </selector> 

现在将这个xml文件保存在可绘制的文件夹中,并将其命名为abc.xml并将其设置如下

  Button tiny = (Button)findViewById(R.id.tiny); tiny.setBackgroundResource(R.drawable.abc); 

希望它会帮助你。 🙂

它很容易实现。 为此,你需要创build一个XML文件(select器文件),并将其放置在res的可绘制文件夹中。 之后,在布局文件的button背景中设置xml文件。

button_background_selector.xml

 <?xml version="1.0" encoding="UTF-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_focused="true" android:state_pressed="false" android:drawable="@drawable/your_hover_image" /> <item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/your_hover_image" /> <item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/your_hover_image"/> <item android:drawable="@drawable/your_simple_image" /> </selector> 

现在将上述文件设置在button的背景中。

 <Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="@color/grey_text" android:background="@drawable/button_background_selector"/> 

对不起,这是错误的。

要根据特定的事件(焦点,按下,正常)来更改背景颜色/图像,您需要定义一个buttonselect器文件并将其作为button的背景来实现。

例如: button_selector.xml(在drawable文件夹中定义这个文件)

 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:color="#000000" /> <!-- pressed --> <item android:state_focused="true" android:color="#000000" /> <!-- focused --> <item android:color="#FFFFFF" /> <!-- default --> </selector> <!-- IF you want image instead of color then write android:drawable="@drawable/your_image" inside the <item> tag --> 

并将其应用为:

  <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:drawable="@drawable/button_selector.xml" /> 

使用此代码在可绘制的文件夹名称中创buildxml文件:button

 <?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/buutton_pressed" /> <item android:drawable="@drawable/button_image" /> </selector> 

并在button的XML文件

  android:background="@drawable/button" 

要改变button的背景,我们可以按照2种方法

  1. 在OnClickbutton中,只需添加以下代码:

      public void onClick(View v) { if(v == buttonName) { buttonName.setBackgroundDrawable (getResources().getDrawable(R.drawable.imageName_selected)); } } 

    2.在drawable文件夹中创buildbutton_background.xml(使用xml)

    res – > drawable – > button_background.xml

      <?xml version="1.0" encoding="UTF-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_selected="true" android:drawable="@drawable/tabs_selected" /> <!-- selected--> <item android:state_pressed="true" android:drawable="@drawable/tabs_selected" /> <!-- pressed--> <item android:drawable="@drawable/tabs_selected"/> </selector> 

    现在在button的背景文件中设置上述文件。

      <Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/button_background"/> (or) Button tiny = (Button)findViewById(R.id.tiny); tiny.setBackgroundResource(R.drawable.abc); 

    第二种方法更适合设置背景fdbutton

您只需要设置背景并在布局文件中的button背景中inputprevious.xml文件即可。

 <Button android:id="@+id/button1" android:background="@drawable/previous" android:layout_width="200dp" android:layout_height="126dp" android:text="Hello" /> 

并完成。编辑以下是可绘制目录中的previous.xml文件

 <?xml version="1.0" encoding="utf-8"?> 
 <item android:drawable="@drawable/onclick" android:state_selected="true"></item> <item android:drawable="@drawable/onclick" android:state_pressed="true"></item> <item android:drawable="@drawable/normal"></item>