Display jpg image from intent in imageview

2019-02-26 01:23发布

问题:

How to display an Image received from an "android.intent.action.SEND" in an imageview? The user selects my app from the list of apps to share an image. The image is sent via intent and my activity opens up but how to use this image in an imageview?

using

Bitmap  thumbnail = (Bitmap) getIntent().getExtras().get("data");

does not help and

getIntent().getType() returns image/jpg

回答1:

You are receving Image in Intent, So you have to update your Manifest as:

<activity android:name=".Your_Activity" >
    ...
    ...
    <intent-filter>
    ...
        <action android:name="android.intent.action.SEND" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="image/*" />
    </intent-filter>
</activity

Then Activity needs:

void onCreate (Bundle savedInstanceState) {
...
// Get intent, action and MIME type
Intent intent = getIntent();
String action = intent.getAction();
String type = intent.getType();

if (Intent.ACTION_SEND.equals(action) && type != null) {
    if (type.startsWith("image/")) {
        Uri imageUri = (Uri) intent.getParcelableExtra(Intent.EXTRA_STREAM);
        if (imageUri != null) {
            YourImageView.setImageUri(imageUri);
        }
    }
.
.
.


回答2:

Try this

 BitMap thumnail= (Bitmap) getIntent().getExtras().getParcelable("data");
 yourImageViewId.setImageBitmap(receiptimage);

Hope it helps



回答3:

Bitmap implements Parcelable interface. So to pass it use

intent.putExtra("bitmap", bitmap);

and to retrieve it use:

Bitmap bitmap = (Bitmap) intent.getParcelableExtra("bitmap");

and use ImageView.setImageBitmap().

EDIT: see Receiving Content from Other Apps