可能重复:
Fetch all Images from Android Photo GalleryAndroid图库:获取所有图像的ID
我想获取从库中的所有图片的ID,然后将其存储在整数array.I发现代码,我点击它后可以得到图像的id,但我不想这样做。我想在没有点击图像的情况下获取所有图像的ID,然后将其存储在整数数组中。请有人帮我解决。
可能重复:
Fetch all Images from Android Photo GalleryAndroid图库:获取所有图像的ID
我想获取从库中的所有图片的ID,然后将其存储在整数array.I发现代码,我点击它后可以得到图像的id,但我不想这样做。我想在没有点击图像的情况下获取所有图像的ID,然后将其存储在整数数组中。请有人帮我解决。
您可以使用内容解析器做到这一点:
Cursor cur = getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, new String[] {ImageColumns._ID}, null, null,null);
然后形成使用本光标获得塔数据的int数组。
if ((cur != null) && cur.moveToFirst()) {
int[] idsArray = new int[cur.getCount()];
for (int i = 0; i < cur.getCount(); i++) {
idsArray[i] = cur.getInt(cur.getColumnIndex(ImageColumns._ID));
cur.moveToNext();
}
}
cur.close();
编辑:
final Cursor cur = context.getContentResolver().query(CameraConstants.IMAGE_STORAGE_PATH_EXTERNAL, null, null, null, ImageColumns.DATE_TAKEN + " DESC");
final ArrayList<String> urlList = new ArrayList<String>();
if ((cur != null) && cur.moveToFirst()) {
final int count = cur.getCount();
for (int i = 0; i < count; i++) {
urlList.add(cursor.getString(cursor.getColumnIndex(MediaColumns.DATA));
cur.moveToNext();
}
}
cur.close();
然后用urlList如下:
for(String imageUrl: urlList){
final BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
InputStream is = null;
is = new FileInputStream(new File(imageUrl));
BitmapFactory.decodeStream(is, null, options);
int width = options.outWidth;
int height = options.outHeight
}
String[] projection = new String[] { ImageColumns._ID,
ImageColumns.TITLE, ImageColumns.DATA,
ImageColumns.MIME_TYPE, ImageColumns.SIZE };
Cursor cur = getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
projection, null, null, null);
while (cur.moveToNext()) {
//fill data
}
我还包含其他领域可能会感兴趣。
谢谢! @Benito。 – Achilles2020
我仍然无法通过此获取图像ID。请指定如何使用此数据形成int数组?请帮助我 – Achilles2020
我仍然无法通过此获取图像ID。请指定如何使用此数据形成int数组?请帮助我。 – Achilles2020
谢谢!! @Vicky。问题现在解决了。 – Achilles2020
我们欢迎您! PS:你可以标记这个答案正确,如果它的工作..;) –