gpt4 book ai didi

android - 如何使用 Gallery 允许用户从应用程序中的 res/drawable 中选择资源?

转载 作者:行者123 更新时间:2023-11-29 02:11:18 24 4
gpt4 key购买 nike

我之前在我的应用程序中使用过 android gallery 来允许用户从 SD 卡中选择图像(使用下面的代码)。

我的问题是:我如何做同样的事情,但允许用户选择存储在我的应用程序/res/drawable 目录中的图像?

使用图库从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);
}
}
}

最佳答案

虽然这不是最好的解决方案,但看起来我可能必须像本教程一样编写自己的图库 View :

mgmblog.com/2008/12/12/listing-androids-drawable-resources

更新:链接早已失效,但这是允许我迭代我的应用程序资源可绘制对象的相关代码:

Field[] drawables = com.example.appname.R.drawable.class.getFields();
for (Field f : drawables) {
try {
System.out.println("com.example.appname.R.drawable." + f.getName());
} catch (Exception e) {
e.printStackTrace();
}
}

其中 com.example.appname 是您的应用命名空间。

关于android - 如何使用 Gallery 允许用户从应用程序中的 res/drawable 中选择资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7213993/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com