尝试分配R.drawable.X Uri时,ImageView.setImageURI不起作用

时间:2010-02-22 18:29:30

标签: android

与:

有关

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独立设置图像......

欢迎提出任何建议。 谢谢。 此致

4 个答案:

答案 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方法并刷新它。

如果您要刷新活动,则不会设置图片。