开发者

How to load an ImageView from a png file?

开发者 https://www.devze.com 2022-12-27 13:54 出处:网络
I take a picture with the camera using Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE );

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 f开发者_开发问答ile 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.


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


Also possible:

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


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


Why not this way:

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


bitmap = BitmapFactory.decodeFile(imageInSD);


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

0

精彩评论

暂无评论...
验证码 换一张
取 消