How to load an ImageView from a png file?

微笑、不失礼 提交于 2019-11-29 03:38:40

问题


I take a picture with the camera using

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

When the activity completes, I write the bitmap picture out to a PNG file.

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

That goes OK, and I can see the file is created in my app private data space.

I'm having difficulty when I later want to display that image using an ImageView.

Can anyone suggest code to do this?

If I try to create a File with path separators in, it fails. If I try to create a Uri from a name without separators, that fails.

I can open the file OK using:

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

But that doesn't give me the Uri I need to set an image with

   iv.setImageURI(u)

Summary: I have the picture in a png file in private app data. What's the code to set that into an ImageView?

Thanks.


回答1:


Try BitmapFactory.decodeFile() and then setImageBitmap() on the ImageView.




回答2:


Also possible:

java.io.FileInputStream in = openFileInput("myfile.png");
iv.setImageBitmap(BitmapFactory.decodeStream(in));



回答3:


iv.setImageURI(Uri.fromFile(in));



回答4:


Why not this way:

ImageView MyImageView = (ImageView)findViewById(R.id.imageView1);
Drawable d = Drawable.createFromPath( PATH TO FILE );
MyImageView.setImageDrawable(d);



回答5:


bitmap = BitmapFactory.decodeFile(imageInSD);



回答6:


There should be no difference between decodeStream() and decodeFile(). decodeFile() method opens an inputstream and calls decodeStream(). This was already answered at this link



来源:https://stackoverflow.com/questions/2688169/how-to-load-an-imageview-from-a-png-file

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!