在首选项屏幕中获取图像URI!

时间:2011-07-24 01:45:19

标签: android image android-activity preference

所以,我实际上正在寻找的是这个解决方案:Get/pick an image from Android's built-in Gallery app programmatically但是在偏好中而不是在活动中工作。

我创建了一个放在我的设置中的类,我想使用该类来查找用户在其手机上选择的图像的URI。由于“startActivityForResult”,我无法使用该链接中的代码。这在首选项中不可用。

知道如何绕过这个吗?

进展报告:

所以,我在同一时间尝试了一些东西。相反,在我的设置中,我添加了以下内容:

 <Preference
    android:key="test"
    android:title="open image"
    android:persistent="true">

    <intent android:action="android.intent.action.GET_CONTENT"
            android:value="image/*"/>

 </Preference>

首先,它不是“GET_CONTENT”,而是“PICK”,但有了它,我只能使用Google Docs和Sim Card Tool Kit,它远离图库或任何浏览文件系统的东西。

使用“GET_CONTENT”,它会崩溃。

我还添加了“android.permission.WRITE_EXTERNAL_STORAGE”预留,即使我只想阅读。但我没有找到任何(让这个作为一个子问题,如果有一种方法只是要求阅读而不是写)。

进展报告#2

我用android:mimeType取代了android:value,我直接进入了画廊。现在,只需要知道我是否真的得到了URI并且它已经解决了。

进展报告#3

此时,这是真正的问题。当我浏览SharedPreferences时,即使在选择图像后,该值仍为空。所以,我想有点黑客可以做。所以现在,这就是问题所在。基于上面我的偏好屏幕的示例,我如何检索“test”的值,假设在调用intent时它将它放在某处?

1 个答案:

答案 0 :(得分:1)

我终于找到了一个解决方案......它不像我想的那样风水,但它确实有效。

我只需手动编写首选项屏幕,然后就可以访问“startActivityForResult”函数。

从这一点开始,需要3到5分钟才能解决问题并完成所有细节。

希望它可以帮助一些人。

你有一个例子:http://www.anddev.org/code-snippets-for-android-f33/preference-screen-with-custom-views-t8472.html

但我使用的是谷歌,但我找不到链接。