如何获取所有选定图像的图像路径或只在我的应用程序中显示它们?
当用户在图库中选择图像并按下共享按钮时,我能够启动我的隐含意图并将其显示在我的imageView中,如下所示
当用户在图库中选择图像并按下共享按钮时,我能够启动我的隐含意图并将其显示在我的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卡获取所有选定图像的图像路径对我来说已经足够了
解决方法
我自己得到了它:发布它,因为如果需要它可以帮助其他人
我们应该告诉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); startManagingCursor(cursor); int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); cursor.moveToFirst(); return cursor.getString(column_index); }