6

buttonlayout. 在Drawable文件夹中,我创建了一个XML file名为btn01_state. btn01_state.xml分配给通过“ ”创建的buttoniandroid:background=@drawable/btn01_state

现在,button有一个默认的imageimg1。当我click在 上时button,image1 更改为 img2,一旦我松开单击的鼠标按钮,image2 再次更改为 img1。

我想要做的是,通过每一次点击更改按钮的图像。

例如,最初 btn01 有 img01

如果按下 btn01==> 将 btn01 的 img 设置为 img02 并保持 img02 直到再次按下 btn01。现在,btn01 上面有 img02。

按下 btn01 时,将 img01 设置为 btn01。

我希望这能更清楚地说明我想要做什么。

btn_selector

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/android_blue"
      android:state_pressed="true" />
<item android:drawable="@drawable/ic_launcher"
      android:state_focused="true" />
<item android:drawable="@drawable/ic_launcher" />

主要的.xml

<Button 
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:id="@+id/btn01"
    android:background="@drawable/btn01_state"/>
4

3 回答 3

18

您可以在代码中轻松完成。

boolean isPressed = false;
button.setOnClickListener(buttonListener);

OnClickListener buttonListener = new OnClickListener() {
    @Override
    public void onClick(View v) {
        if(isPressed)
           button.setBackgroundResource(R.drawable.icon1);
        else
           button.setBackgroundResource(R.drawable.icon2);

        isPressed = !isPressed;
   }
};
于 2012-05-06T12:42:32.740 回答
1

简单的方法

btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
    btn.setBackgroundDrawable(getResources().getDrawable(R.drawable.locationbutton_on));
                }
        }); 
于 2012-05-06T12:40:18.267 回答
0

也许在代码中制作它。在按钮上放置一个侦听器,当单击按钮时,背景会发生变化。

于 2012-05-06T11:57:03.047 回答