2012-09-11 35 views

回答

0

您可以使用内容解析器做到这一点:

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 

}

+0

我仍然无法通过此获取图像ID。请指定如何使用此数据形成int数组?请帮助我。 – Achilles2020

+0

谢谢!! @Vicky。问题现在解决了。 – Achilles2020

+0

我们欢迎您! PS:你可以标记这个答案正确,如果它的工作..;) –

0
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 
} 

我还包含其他领域可能会感兴趣。

+0

谢谢! @Benito。 – Achilles2020

+0

我仍然无法通过此获取图像ID。请指定如何使用此数据形成int数组?请帮助我 – Achilles2020