0

以下は私のコードです:

String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cur = getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, new String[] {ImageColumns._ID}, null, null,null);
if ((cur != null) && cur.moveToFirst()) {
    //  Integer idsArray[] = new Integer[cur.getCount()];
    for (int i = 0; i < cur.getCount(); i++) {
        idsArray[i] = cur.getInt(cur.getColumnIndex(ImageColumns._ID));


        cur.moveToNext();
    }

}
Bitmap originalImage = BitmapFactory.decodeFile(cur.getString(cur.getColumnIndex(filePathColumn[0])));
int width = originalImage.getWidth();

int height = originalImage.getHeight();

cur.close();

各画像の高さと幅を取得したい。getHeight()とメソッドを使用したいのですgetWidth()が、上記のコードでエラーが発生します。私を助けてください。

4

1 に答える 1

0

これをチェックして

Cursor cur = getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, **new String[] {ImageColumns._ID}**, null, null,null);

フィールドのみを照会していImageColumns._IDます。追加MediaStore.Images.Media.DATAしてOKです。

このような:

    String[] filePathColumn = { MediaStore.Images.Media.DATA };
    Cursor cur = context.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, new String[] { ImageColumns._ID, MediaStore.Images.Media.DATA }, null, null, null);

    if ((cur != null) && cur.moveToFirst()) {
        //  Integer idsArray[] = new Integer[cur.getCount()];
        for (int i = 0; i < cur.getCount(); i++) {
            cur.getInt(cur.getColumnIndex(ImageColumns._ID));

            Bitmap originalImage = BitmapFactory.decodeFile(cur.getString(cur.getColumnIndex(filePathColumn[0])));
            int width = originalImage.getWidth();
            int height = originalImage.getHeight();

            cur.moveToNext();
        }

    }

    cur.close();
于 2012-09-11T12:49:32.453 に答える