与:
有关Need suggestion about a mixed "Uri / int id" images ambient
现在我的问题是:
ImageView imgView=(ImageView)findViewById(R.id.imgView);
Uri imgUri=Uri.parse("android.resource://my.package.name/"+R.drawable.image);
imageView.setImageURI(imgUri);
不起作用。为什么呢?
我知道
imgView.setImageDrawable(Drawable.createFromStream(
getContentResolver().openInputStream(imgUri),
null));
的工作。
但这并不能解决我的问题。因为如果来自资源或来自相机ACTION_PICK意图,我想用uri独立设置图像......
欢迎提出任何建议。 谢谢。 此致
答案 0 :(得分:60)
试试这个
Uri imgUri=Uri.parse("android.resource://my.package.name/"+R.drawable.image);
imageView.setImageURI(null);
imageView.setImageURI(imgUri);
这是一种用于刷新ImageButton的解决方法,它尝试缓存前一个图像Uri。传递null
会有效地重置它。
本书提出的解决方案:Sams Teach Yourself Android Application Development in 24 Hours - 非常值得推荐阅读。
答案 1 :(得分:0)
imageView.postInvalidate()
有效。如果您在UI线程上,请imageView.invalidate()
。
答案 2 :(得分:0)
您应该做这样的事情
Uri imgUri = Uri.parse("android.resource://my.package.name/drawable/image_sky");
或者如果您想要这样
Uri imgUri = Uri.parse("android.resource://" + getPackageName() + "/drawable/" + "image_sky");
答案 3 :(得分:0)
首先查看您是否不重写onRestart方法并刷新它。
如果您要刷新活动,则不会设置图片。