将uri.parse资源设置为ImageView

时间:2014-07-27 16:07:00

标签: android android-intent

我正在尝试将ImageView设置为uri.pare的资源。

执行此任务我尝试了这个但它无法正常工作:无法加载图片

方法1:

Intent intent = new Intent(Intent.ACTION_ATTACH_DATA);
                intent.addCategory(Intent.CATEGORY_DEFAULT);
                intent.setDataAndType(Uri.parse("R.id.imageView1"),"image/*");
                intent.putExtra("mimeType", "image/*");
                startActivity(Intent.createChooser(intent, "Set as:"));

方法2:

Intent intent = new Intent();
                 intent.setAction(Intent.ACTION_VIEW);
                 intent.setDataAndType(Uri.parse("R.id.imageView1"),"image/*");
                 startActivity(intent);

我无法将ImageView设置为uri.parse的资源,所以请帮助我如何将ImageView设置为uri.parse的资源

我找到了一个代码,但我不明白如何使用我的代码调整此代码:

这是我发现的:

ImageView imgView = (ImageView) findViewById(R.id.image3);

    imgView.setImageURI(Uri.parse("file://mnt/sdcard/d2.jpg"));

如何使用我的代码进行调整:

intent.setDataAndType(Uri.parse("R.id.imageView1"),"image/*");

2 个答案:

答案 0 :(得分:1)

ImageView.setImageURI仅采用此处所述的Android内容URI:

https://groups.google.com/forum/?fromgroups=#!topic/android-developers/jupslaeAEuo

换句话说,它需要" file://"或"内容://" URI,而不是资源ID,就像您要做的那样。

如果你想这样做,我知道如何以及我做了什么的唯一方法是将资源写入文件,然后将文件路径传递给ImageView URI。有很多关于如何将文件写入系统的例子(包括考虑使用SDCARD等)

我非常确定您可以编写一个ContentProvider来解析" content://"或" file://"使用ContentProvider openFile / openInputStream方法的方案,但在我需要之前我放弃了它。我可能会完成它 - 如果有人好奇它是如何工作的......

答案 1 :(得分:0)

"将uri.parse资源设置为ImageView"不起作用,我没有找到这样的方式 "将uri.parse资源设置为ImageView" 简单而有效的方法是将图像保存到SD卡,然后使用如下代码:

intent.setDataAndType(Uri.parse("file://mnt/sdcard/temp_image0.png"),"image/*");

请参阅此帖子,了解如何将图片保存到SD卡: how to save ViewPager Current image to sd card on button click

相关问题