机器人:在图片库中选取多张图像,并开始隐含意图(android:selecting multiple

2019-08-02 17:16发布

如何让所有选择图像的图像路径或只是在我的应用程序显示出来? 我可以开始我的隐含意图,并在我的ImageView显示它时,如下图所示的画廊,并按下分享按钮,用户选择图像

ImageView iv=(ImageView)findViewById(R.id.im);
iv.setImageUri((Uri)getIntent().getExtras().get(Intent.EXTRA_STREAM));

在我的活动清单文件

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

但我想选择内置画廊多个图像,当我按下分享按钮的话,我应该能在我的应用程序,以显示他们,所以我怎么做呢?

或正从SD卡的所有选择图像的图像路径是绰绰有余了我

Answer 1:

我得到了它自己:张贴,因为它可能会帮助别人,如果需要

我们应该告诉Android版当我们打开库,并选择共享按钮,然后我的应用程序必须共享,如选项之一:

manifest资源配置文件:

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

并选择我们的应用程序后,它会打开每个图像与复选框画廊选择图像,处理在应用程序中选择图片:

selectedimages.java文件:

if (Intent.ACTION_SEND_MULTIPLE.equals(getIntent().getAction())
    && getIntent().hasExtra(Intent.EXTRA_STREAM)) {
    ArrayList<Parcelable> list =
            getIntent().getParcelableArrayListExtra(Intent.EXTRA_STREAM);
                for (Parcelable parcel : list) {
                   Uri uri = (Uri) parcel;
                   String sourcepath=getPath(uri);

                   /// do things here with each image source path.
               }
                finish();
}
}

public  String getPath(Uri uri) {
String[] projection = { MediaStore.Images.Media.DATA };
Cursor cursor = managedQuery(uri, projection, null, null, null);
startManagingCursor(cursor);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}


文章来源: android:selecting multiple images in gallery and starting implicit intent