Ich versuche, das Bild eines ImageButton zu ändern, wenn die Taste gedrückt wird. Hier ist mein Code:ImageButton-Änderung: Das neue Bild wird über das Originalbild geplottet
in meinem activity_main.xml
ich habe:
<ImageButton
android:id="@+id/my_btn"
app:srcCompat="@drawable/btn_icon1" />
In meinem MainActivity.java
ich habe:
int myBtnState = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
...
myButton = (ImageButton) findViewById(R.id.my_btn);
myButton.setOnClickListener(this);
...
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.my_btn:
changeIcon();
break;
...
private void changeIcon() {
if(myBtnState == 0) {
myButton.setBackgroundResource(R.drawable.btn_icon1);
myBtnState = 1;
} else {
myButton.setBackgroundResource(R.drawable.btn_icon2);
myBtnState = 0;
}
}
, wenn ich diesen Code ausführen, wenn ich die Taste drücken, es sieht aus wie die erste Mal btn_icon1
wird über sich selbst 2 Mal gezeichnet, wie es einen halbtransparenten Hintergrund hat Ich sehe es wird dunkler. Und beim nächsten Mal drücke ich den Knopf btn_icon2
wird über btn_icon1
gezeichnet. Ich habe erwartet, dass mit diesem Code die Icons geändert werden, nicht übereinander gezeichnet werden. Gibt es irgendetwas, was ich hier falsch mache?