1

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

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

如果星星图像已经打开,请建议我使用关闭模式。我没有任何想法。

4

4 回答 4

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(); 
}
于 2014-09-08T07:24:19.783 回答
0

您可以使用标签属性。

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);

            }
        }); 
于 2014-08-22T06:38:32.997 回答
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;
 }
于 2014-08-22T06:28:55.130 回答
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`
于 2016-05-25T09:45:30.340 回答