点击按钮更改两个图像(Android)

时间:2014-11-23 08:22:19

标签: android image onclick buttonclick

所以,我想制作一个按钮,每按一次按钮,它就会改变按钮上方的图像。我总共有2张图片,所以我不使用数组。假设我有image1.png和image2.png。默认图像是image1,按下按钮后,图像变为image2。如果我再次按下它会转到image1。

package blablablabla;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;

public class MainActivity extends Activity {

ImageView image;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    image = (ImageView) findViewById(R.id.myicon);
}


public void onClick(View view) {
    switch(view.getId()){
    case R.id.button1:{
        image.setImageResource(R.drawable.initial);
        return;
    }
  }
 }
}

我想过制作if语句:如果图像是image1,则将其更改为image2,反之亦然。

问题:我改为image2后,无法切换回来。我知道我没有为此编写代码,因为我做错了。

2 个答案:

答案 0 :(得分:5)

好的我认为这可能会:

package blablablabla;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;

public class MainActivity extends Activity {

ImageView image;
boolean flag = true;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    image = (ImageView) findViewById(R.id.myicon);
}


public void onClick(View view) {
    switch(view.getId()){
    case R.id.button1:{
    if(flag)
    {       
        image.setImageResource(R.drawable.initial);
        flag=false;
    }
    else
    {
        image.setImageResource(R.drawable.secondary);
        flag=true;
    }
        return;
    }
  }
 }
}

答案 1 :(得分:1)

好的,在您检索onCreate()的{​​{1}}中,首先需要使用ImageView,以便您可以识别其中已有的图像。设置setTag()的图像后,您无法获取资源ID。这只是一个解决方法,请执行此操作:

ImageView

现在,在您的image = (ImageView) findViewById(R.id.image); image.setTag(R.drawable.image1); 中,您可以执行以下操作:

onClick()

基于:https://stackoverflow.com/a/14474954/1894684

您也可以使用setImageResource()代替setImageDrawable()。前者在UI线程上进行图像解码,但