2016-01-20 47 views
-4

我正在做一个android应用程序,其中放置了一个图像按钮。我给了一个默认的图像源。当我点击图像时,应该将图像源更改为另一图像,如果我再次按下图像,我应该返回默认图像。它像在两个图像之间切换。但由于我的应用程序需要,我不想使用toggleButton。请帮我解决一下这个。单击时更改ImageButton的src

在此先感谢。

+2

**单击侦听器和if-else条件**。你是否尝试过任何事情,如果是的话请发布该代码如果没有,那么你应该先尝试一下。 – Rohit5k2

+0

你应该使用选择器.... – Opiatefuchs

+0

代码,例子? – peterpeterson

回答

0
ImageButton: 

<ImageButton 
    android:id="@+id/imagebutton" 
    android:layout_width="250dp" 
    android:layout_height="100dp" 
    android:background="@drawable/img_btn_selector"/> 

img_btn_selector:

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

Activity: 

imgBtn.setOnClickListener(new OnClickListener() { 

     public void onClick(View button) { 
      if (button.isSelected()){ 
       button.setSelected(false); 
      } else { 
       button.setSelected(true); 
      } 
     } 
    }); 
1

如果你不希望任何与切换,你会保留一个计数器。

XML:

<android.support.v7.widget.AppCompatImageButton 
     android:id="@+id/button" 
     android:layout_width="10dp" 
     android:layout_height="match_parent" 
     android:src="@mipmap/original" 
     android:background="@color/original"/> 

活动:

public class Activity extends AppCompatActivity { 

    int clickcounter = 0;   

    @Bind(R.id.button) 
    ImageButton Button; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     //Butter Knife 
     ButterKnife.bind(this); 

     //Hook up the OnClick Listener 
     feedButton.setOnClickListener(feedButtonHandler); 

    } 

View.OnClickListener feedButtonHandler = new View.OnClickListener() { 
    public void onClick(View v) { 
     clickcounter = clickcounter + 1; 
     if (clickcounter % 2 == 1) { 
     // setImageResource is the method for setting imagebutton's src in xml 
     Button.setImageResource(R.mipmap.new); 
     // setBackgroundResource is the method for setting imagebutton's background in xml 
     Button.setBackgroundResource(R.color.new); 
     } 

     if (clickcounter % 2 == 0) { 
     Button.setImageResource(R.mipmap.original); 
     Button.setBackgroundResource(R.color.original); 
     } 
    }; 
} 

但切换是做一个简单的方法。