如何检查imageview android中设置的图像

时间:2014-08-22 06:21:48

标签: android events imageview onclicklistener favorite

我在动作栏中有一个星形图像。当我点击它时,图像应该变为ON星。这工作正常。但是如何知道图像是处于ON状态还是OFF状态。我想要一些东西,如果图像处于OFF模式并且用户点击ON星形,那么它应该设置为ON星形图像。最初,图像设置为OFF模式。所以对于这个,我写了一个让行在用户点击它时打开:

v.setBackgroundResource(android.R.drawable.star_big_on);

如果星形图像已经打开,大家会建议我使用OFF模式。我不知道。

4 个答案:

答案 0 :(得分:3)

您可以通过设置每个图像的标记或比较资源来轻松检查 资源方法的比较如下:

if (regProfile.getDrawable().getConstantState() == 
    getResources().getDrawable(R.drawable.ivpic).getConstantState()){             
      Toast.makeText(_con, "Image is ivPic", Toast.LENGTH_LONG).show(); 
} else{
      Toast.makeText(_con, "Image isn't ivPic", Toast.LENGTH_LONG).show(); 
}

答案 1 :(得分:0)

如果我的猜测是正确的,你可以实现这样的功能。相应地改变这个代码用于图像onclick

 private Button button;
 public static boolean isclick=false;
 button.setOnClickListener(seathtlistner);
 private View.OnClickListener seathtlistner = new View.OnClickListener() {
 public void onClick(View v) {
// TODO Auto-generated method stub
  if(isclick){
  button.setBackgroundResource(R.drawable.onstarimage);
}else{
  button.setBackgroundResource(R.drawable.offstarimage);
}
isclick=!isclick;
 }

答案 2 :(得分:0)

您可以使用Tag属性。

img_view.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {

                Boolean tag_isOn = (Boolean) v.getTag();

                tag_isOn = !tag_isOn;
                v.setBackgroundResource(tag_isOn ?android.R.drawable.star_big_on:android.R.drawable.star_big_off);


                v.setTag(tag_isOn);

            }
        }); 

答案 3 :(得分:0)

if (img_like.getTag() != null && img_like.getTag().toString().equals("red")) {
                        img_like.setImageResource(R.drawable.heart);
                        img_like.setTag("heart");
                    } else {
                        img_like.setImageResource(R.drawable.red);
                        img_like.setTag("red");
                    }`enter code here`