如何获取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
相关文章推荐
- LR添加Windows和Linux压力机实战
- console前端代码自动删除QQ空间我的说说
- Spark资源调度机制源码分析--基于spreadOutApps及非spreadOutApps两种资源调度算法
- 八大排序算法之直接插入排序
- Android 项目实战:智慧北京(黑马)
- hdu 2135 Rolling table
- spring4-001 annotation Helloworld
- STM32单片机串口一键下载电路与操作方法详解
- The differences between scanf() and gets()
- Android 性感美图在线浏览APP
- Android 性感美图在线浏览APP
- Storm并发度详解
- 移动App測试实战:顶级互联网企业软件測试和质量提升最佳实践
- sublime:a plugin may be making sublime text unresponsuve by taking too long in its o
- 音乐功能后的相关总结
- Storm实时日志分析实战
- 二、嵌入式linux系统烧写方式简述
- dimystifying iOS Application Crash Logs
- 安卓学习之路!
- Redis性能调优:保存SNAPSHOT对性能的影响