您的位置:首页 > 其它

如何获取imageView中当前内容的相关信息并比较?

2016-01-31 18:19 495 查看
@Override
public void onClick(View v){
switch(v.getId()){
case R.id.image_view:
Toast.makeText(MainActivity.this, editText.getText().toString(), Toast.LENGTH_LONG).show();
ImageView iv = (ImageView) v;
Integer integer = iv.getId();
integer = integer==null?0:integer;
if (integer == R.drawable.wa2||integer == 0){
imageView.setImageResource(R.drawable.wa2);
imageView.setTag(R.drawable.wa2);
}
else {
imageView.setImageResource(R.drawable.ic_launcher);
imageView.setTag(R.drawable.ic_launcher);
}break;
}
}


wrong code
点击图片不再炸,但图片不变;交换if内容后变一次不再变

log出图片信息和ImageView信息如图,发现都不一样……



然而发现接口就是这么定义的……一样就有鬼了

再仔细读一遍,其实代码核心就是getTag()和setTag()……前面全搞错了

最终修改代码如下:

imageView.setOnClickListener(new OnClickListener(){
public void onClick(View v){
Toast.makeText(MainActivity.this, editText.getText().toString(), Toast.LENGTH_LONG).show();
ImageView iv = (ImageView) v;
Integer integer = (Integer)iv.getTag();
integer = integer==null?0:integer;
Log.d("intval",integer.toString());
Log.d("wa2val",((Integer)R.drawable.wa2).toString());
Log.d("icval",((Integer)R.drawable.ic_launcher).toString());
if (integer == R.drawable.wa2){
iv.setImageResource(R.drawable.ic_launcher);
iv.setTag(R.drawable.ic_launcher);
}
else {
iv.setImageResource(R.drawable.wa2);
iv.setTag(R.drawable.wa2);
}
}
});
}


点击按钮和图片均正常工作

总结:两种思路,都是获取不变量  1)获取图片本身的不变量:利用drawable.constantState  2)手动设置不变量:为imageView设置tag
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: