12

我用相机拍照

Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE );
startActivityForResult( intent, 22 );

活动完成后,我将位图图片写入 PNG 文件。

    java.io.FileOutputStream out = openFileOutput("myfile.png", Context.MODE_PRIVATE);
    bmp.compress(Bitmap.CompressFormat.PNG, 90, out);

没问题,我可以看到该文件是在我的应用程序私有数据空间中创建的。

当我以后想使用 ImageView 显示该图像时,我遇到了困难。

谁能建议代码来做到这一点?

如果我尝试创建一个带有路径分隔符的文件,它会失败。如果我尝试从没有分隔符的名称创建 Uri,则会失败。

可以使用以下方法打开文件:

        java.io.FileInputStream in = openFileInput("myfile.png");

但这并没有给我设置图像所需的 Uri

   iv.setImageURI(u)

摘要:我在私人应用程序数据中的 png 文件中有图片。将其设置为 ImageView 的代码是什么?

谢谢。

4

6 回答 6

33

试试BitmapFactory.decodeFile()然后setImageBitmap()ImageView

于 2010-04-22T10:40:41.107 回答
8

也可以:

java.io.FileInputStream in = openFileInput("myfile.png");
iv.setImageBitmap(BitmapFactory.decodeStream(in));
于 2010-04-24T12:07:00.573 回答
3
iv.setImageURI(Uri.fromFile(in));
于 2013-03-28T16:16:27.433 回答
1
bitmap = BitmapFactory.decodeFile(imageInSD);
于 2012-12-31T12:59:07.203 回答
1

为什么不这样:

ImageView MyImageView = (ImageView)findViewById(R.id.imageView1);
Drawable d = Drawable.createFromPath( PATH TO FILE );
MyImageView.setImageDrawable(d);
于 2013-04-14T09:43:13.250 回答
0

decodeStream()和之间应该没有区别decodeFile()decodeFile()方法打开一个输入流并调用decodeStream(). 这个链接已经回答了

于 2013-07-17T19:20:04.050 回答