Android 获取资产文件夹的 URI
Android get URI of assets folder
我正在尝试从我的应用程序中的资产文件夹制作一个简单的图库。
所以我创建了一个资产文件夹,并在一个名为 'pics' 的目录中创建,并在里面放了一些 jpg 文件。
然后我这样做是为了从资产文件夹中的图片中获取所有图像。我想通过 assets 文件夹的 URI 获取它但是它不起作用,我猜是因为 URI 是错误的:
Uri uriExternal = Uri.parse(getApplicationContext().getResources().getAssets().open("pics").toString());
String[] projection = { MediaStore.MediaColumns.DATA,
MediaStore.Images.Media.BUCKET_DISPLAY_NAME, MediaStore.MediaColumns.DATE_MODIFIED };
Cursor cursorExternal = getContentResolver().query(uriExternal, projection, "bucket_display_name = \""+album_name+"\"", null, null);
Cursor cursor = new MergeCursor(new Cursor[]{cursorExternal});
while (cursor.moveToNext()) {
path = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.MediaColumns.DATA));
album = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Images.Media.BUCKET_DISPLAY_NAME));
imageList.add(Function.mappingInbox(album, path, null));
}
使用这样的东西:
AssetManager assets = getApplicationContext().getResources().getAssets();
String[] pics = assets.list("pics");
ArrayList<Bitmap> bmps = new ArrayList<>();
for (String path : pics) {
bmps.add(BitmapFactory.decodeStream(assets.open(path));
}
bmps
列表现在包含 pics
文件夹中的所有位图图像。
我纯粹是根据文档写的,还没有测试过。如果您 运行 遇到麻烦,我建议您自己阅读文档:https://developer.android.com/reference/android/content/res/AssetManager
我正在尝试从我的应用程序中的资产文件夹制作一个简单的图库。 所以我创建了一个资产文件夹,并在一个名为 'pics' 的目录中创建,并在里面放了一些 jpg 文件。
然后我这样做是为了从资产文件夹中的图片中获取所有图像。我想通过 assets 文件夹的 URI 获取它但是它不起作用,我猜是因为 URI 是错误的:
Uri uriExternal = Uri.parse(getApplicationContext().getResources().getAssets().open("pics").toString());
String[] projection = { MediaStore.MediaColumns.DATA,
MediaStore.Images.Media.BUCKET_DISPLAY_NAME, MediaStore.MediaColumns.DATE_MODIFIED };
Cursor cursorExternal = getContentResolver().query(uriExternal, projection, "bucket_display_name = \""+album_name+"\"", null, null);
Cursor cursor = new MergeCursor(new Cursor[]{cursorExternal});
while (cursor.moveToNext()) {
path = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.MediaColumns.DATA));
album = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Images.Media.BUCKET_DISPLAY_NAME));
imageList.add(Function.mappingInbox(album, path, null));
}
使用这样的东西:
AssetManager assets = getApplicationContext().getResources().getAssets();
String[] pics = assets.list("pics");
ArrayList<Bitmap> bmps = new ArrayList<>();
for (String path : pics) {
bmps.add(BitmapFactory.decodeStream(assets.open(path));
}
bmps
列表现在包含 pics
文件夹中的所有位图图像。
我纯粹是根据文档写的,还没有测试过。如果您 运行 遇到麻烦,我建议您自己阅读文档:https://developer.android.com/reference/android/content/res/AssetManager