允许其他应用程序从我的应用程序中选择图像,如Gallery

时间:2013-12-22 15:47:28

标签: android

我的应用是一个简单的图库应用,任何用户都可以制作图像并将其保存到SdCard。 我有一个活动,其中用户创建的所有图像都将显示在GridView中。

现在我想要的是我的应用程序显示在图像选择器列表中,其中显示了图库和其他应用程序。

我已经实现了在列表中显示我的应用的Intent过滤器,

  

但是我应该编写什么代码,以便用户可以从我的代码中选择一个图像   gridview的

..... enter image description here

  <intent-filter>
            <action android:name="android.intent.action.PICK" />

            <category android:name="android.intent.category.DEFAULT" />

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

            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.OPENABLE" />

            <data android:mimeType="image/*" />
        </intent-filter>

2 个答案:

答案 0 :(得分:1)

  

但是我应该编写什么代码,以便用户可以从我的gridview中选择一个图像

你会写一个ActivityGridView。当用户做出选择时,您可以致电setResult()Uri提供返回值,其中包含用于触发您的活动的Intent操作记录的信息。然后,您可以致电finish(),关闭您的活动并将控制权交还给您发起的任何活动。

ACTION_GET_CONTENT的文档包含:

  

输出:已挑选项目的URI。这必须是内容:URI,以便任何接收者都可以访问它。

Uri位于您传递给Intent的{​​{1}}。

setResult()的文档包含:

  

输出:已挑选项目的URI。

因此,您可以使用相同的代码为ACTION_PICKIntent填充setResult()的{​​{1}}。

答案 1 :(得分:0)

其实我想要的是:

Intent result = new Intent("com.example.RESULT_ACTION", Uri.parse("content://result_uri");
setResult(Activity.RESULT_OK, result);
finish();

通过使用这样的setResult,我们可以发送数据。