完美解决ImageView src/background 动态设置对应关系
目录
所遇问题
有些时候我们如下资源中设置了图标背景
<ImageView
android:id="@+id/imb_start"
android:src="@drawable/start_selector" />
但是我们希望在图片按下后,变成两外一张背景图标,我们就需要对控件ImageView进行动态设置背景图片,但是有时候我们调用了ImageView的方法setBackground后,并没有达到我们的预期,而是多出来了一个背景覆盖上去了,那么我们究竟应该调用什么方法呢?
解决思路
查阅Android相关文档,找到相关的两个接口setImageResource和setBackgroundDrawable,经过详细分析查阅,发现资源里设置为src或者background,若要动态修改,要对应的函数进行设置。
解决方法
动态设置ImageView的src:
image.setImageDrawable(getResources().getDrawable(R.drawable.bg));
String path=Environment.getExternalStorageDirectory()+File.separator+”test.jpg”;
Bitmap bm = BitmapFactory.decodeFile(path);
image.setImageBitmap(bm);
image.setImageResource(R.drawable.bg);
动态设置ImageView的background:
image.setBackground(getResources().getDrawable(R.drawable.bg));
image.setBackgroundResource(R.drawable.bg);
image.setBackgroundDrawable(getResources().getDrawable(R.drawable.bg));