我正在做一个Android应用程序,我在其中放置了一个图像按钮。我给了一个默认的图像源。当我点击图像时,它应该将图像源更改为另一个,如果我再次按下图像,我应该恢复默认图像。
就像在两张图片之间切换一样。但由于我的应用程序的要求,我不想使用toggleButton。
答案 0 :(得分: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);
}
};
}
但切换是一种更简单的方法。
答案 1 :(得分: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);
}
}
});