-1

私はAndroidを使用してアプリで画像を選択していますが、理由がわかりません。例外が発生することがあります。常に400または500 kbを超える画像を選択していると思いますが、よくわかりません。なんで?100 kbの小さな画像を選択しても例外は発生せず、500kbまたは1.5mbの画像を取得するとクラッシュするためです。

この機能を携帯電話でテストする必要があるため、例外がわかりません。エミュレータに画像を配置する方法がわからないため、エミュレータでテストできません。

これは私のコードです:

changeImageButton.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                Intent i = new Intent(Intent.ACTION_PICK,
                        android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI);
                startActivityForResult(i, ACTIVITY_SELECT_IMAGE);
            }
        }); 



protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) { 
        super.onActivityResult(requestCode, resultCode, imageReturnedIntent); 

        switch(requestCode) {
        case 1:
        {
            setResult(1);
            finish();    
        }
        case ACTIVITY_SELECT_IMAGE:
            if(resultCode == RESULT_OK){  
                Uri selectedImage = imageReturnedIntent.getData();
                String[] filePathColumn = {MediaStore.Images.Media.DATA};

                Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);
                cursor.moveToFirst();

                int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
                String filePath = cursor.getString(columnIndex);
                cursor.close();

                selectedPhoto = BitmapFactory.decodeFile(filePath);
                //profileImage.setImageBitmap(selectedPhoto);
                profileImage.setImageBitmap(Bitmap.createScaledBitmap(selectedPhoto, 80, 80, false));
            }
        }
    }

profileImageは私のレイアウトのImageViewです。スケーリングされたbutmapを使用して画像を80x80に再設定します

この例外について助けてください、私はそれを解決する必要があります

ありがとう

4

1 に答える 1

1

私はあなたのコードを私の電話にダンプしました、そしてそれはうまく働きます。5.5メガバイトの画像も問題なく試しました。

私がお勧めするのは、エミュレーターにSDカードをセットアップすることだと思います。インターネット上でこれを行う方法についてのチュートリアルはたくさんあります。エミュレーターでSDカードをセットアップすると、LogCatで例外を取得し、どこで問題が発生しているかを判断できるようになります。

于 2011-01-29T21:12:35.687 に答える