如何使用 Gallery 允许用户从应用程序中的 res/drawable 中选择资源?
我之前在我的应用程序中使用过 android gallery 来允许用户从 SD 卡中选择图像(使用下面的代码)。
我的问题是:我怎样才能做同样的事情,但允许用户选择存储在我的 apps /res/drawable 目录中的图像?
使用gallery从SD中选取的代码:
Intent i = new Intent(Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(i, ACTIVITY_SELECT_IMAGE);
然后在onActivityForResult中调用intent.getData()获取Image的Uri。
protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) {
super.onActivityResult(requestCode, resultCode, imageReturnedIntent);
switch(requestCode) {
case REQ_CODE_PICK_IMAGE:
if(resultCode == RESULT_OK){
Uri selectedImage = imageReturnedIntent.getData();
String[] filePathColumn = {MediaStore.Images.Media.DATA};
Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String filePath = cursor.getString(columnIndex);
cursor.close();
Bitmap yourSelectedImage = BitmapFactory.decodeFile(filePath);
}
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
虽然这不是最好的解决方案,但看起来我可能必须像本教程一样编写自己的图库视图:
mgmblog.com/2008/12/12/listing-androids-drawable-resources
更新:链接早已失效,但这里是相关代码允许我迭代我的应用程序资源可绘制对象:
其中 com.example.appname 是您的应用程序命名空间。
Although this isn't the best solution, Looks like I may have to write my own gallery view like this tutorial:
mgmblog.com/2008/12/12/listing-androids-drawable-resources
UPDATE: link is long dead, but here is the relevant code that allows me to iterate my apps res drawables:
Where com.example.appname is your apps namespace.