1

アプリケーションでギャラリーを開いて画像を選択すると、その画像をダイアログボックスに表示する必要があります..ビットマップ値が返されることがあります..ビットマップ値がダイアログボックスに表示されないことがあります..それは例外を通過します.

 java.lang.NullPointerException
04-16 10:11:52.310: WARN/System.err(1395):     at android.graphics.Bitmap.createScaledBitmap(Bitmap.java:432)
04-16 10:11:52.310: WARN/System.err(1395):     at myclassname.onActivityResult

iopenギャラリーの場合、以下のコードを使用しました

 Intent intent = new Intent();
         intent.setType("image/*");
         intent.setAction(Intent.ACTION_GET_CONTENT);
         ((Activity) context).startActivityForResult(Intent.createChooser(intent,"Select Picture"), PICK_FROM_FILE);

ギャラリーからデータを取得する敵は、このコードを使用しました

@Override 
              public  void onActivityResult(int requestCode, int resultCode, Intent data) 
              {
                   super.onActivityResult(requestCode, resultCode, data);

                  if(resultCode == Activity.RESULT_OK)
                  { 
                      Uri selectedImage = data.getData();
                       try {

 Bitmap bitmap =   BitmapFactory.decodeStream(getContentResolver().openInputStream(selectedImage));

                    } catch (Exception e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }

                  }
                 }

助けてください..

4

1 に答える 1

0

onActivityResult画像を受け取るコードをこのコードに変更すると、

    if (resultCode == RESULT_OK && requestCode == PICK_FROM_FILE) {

        Uri contentUri = data.getData();
        String[] proj = { MediaStore.Images.Media.DATA };
        Cursor cursor = managedQuery(contentUri, proj, null, null, null);
        int column_index = cursor
                .getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
        cursor.moveToFirst();
        String tmppath = cursor.getString(column_index); // get path of image
        Bitmap mBitmap = BitmapFactory.decodeFile(tmppath); // decode path into bitmap
        iv.setImageBitmap(mBitmap); // set image to imageview
    }
于 2012-04-16T05:17:33.153 に答える