0

ビットマップ イメージの表示に問題があります。私のアプリでは、ユーザーが画像ビューをクリックすると、アラート ダイアログ プロンプトが表示され、カメラを使用して写真を撮るか、ファイルから写真を取得するかを選択できます。「画像」という名前の画像ビューがあります。ここに私の警告ダイアログリスナーがあります:

if(option == 0) // take a picture option
                    {   
                        try
                        {   
                            Intent captureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

                            ContentValues values = new ContentValues();
                            values.put(MediaStore.Images.Media.TITLE, Constants.PIC_FILENAME_PREFIX + System.currentTimeMillis() + Constants.PIC_FILENAME_SUFFIX);
                            mCapturedImageURI = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);

                            captureIntent.putExtra(MediaStore.EXTRA_OUTPUT, mCapturedImageURI);

                            captureIntent.putExtra(MediaStore.EXTRA_SIZE_LIMIT, 2 * 1024 * 1024); // limit to 2MB data

                            startActivityForResult(captureIntent, CAMERA_CAPTURE);// start activity
                        } 
                        catch (ActivityNotFoundException anfe)
                        {
                            String errorMessage = "It appears your device does not have camera..";
                            Toast.makeText(UploadPhoto.this, errorMessage, Toast.LENGTH_SHORT).show();

                        }                                       
                    }
                    else if(option==1)
                    {
                        Intent intent = new Intent();
                        intent.setType("image/*");
                        intent.setAction(Intent.ACTION_GET_CONTENT);
                        startActivityForResult(Intent.createChooser(intent, "Select Picture"), SELECT_FROM_FILE);
                    }

そして以下は私の活動結果です:

public void ActivityResult(int request, int result, Intent intentdata)
    {
        BitmapFactory.Options options = new BitmapFactory.Options();
        options.inPurgeable = true;
        options.inInputShareable = true;

        if(result ==RESULT_OK)
        {
            if(request==SELECT_FROM_FILE)
            {
                mCapturedImageURI = intentdata.getData();
            }

            String[] projection = { MediaStore.Images.Media.DATA };
            Cursor cursor = managedQuery(mCapturedImageURI, projection, null, null, null);
            if(null==cursor)
            {
                return;
            }

            int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);

            cursor.moveToFirst();
            mCapturedFilePath = cursor.getString(column_index);
            stopManagingCursor(cursor);
            cursor.close();

            // compute the boundary first
            options.inJustDecodeBounds = true;
            Bitmap bitmap = BitmapFactory.decodeFile(mCapturedFilePath, options);
            // get image from file
            options.inSampleSize = ImageUtil.calculateInSampleSize(options, Constants.PIC_IMAGE_DISP_WIDTH, Constants.PIC_IMAGE_DISP_HEIGHT);
            options.inJustDecodeBounds = false;
            bitmap = BitmapFactory.decodeFile(mCapturedFilePath, options);

            bitmap = Bitmap.createScaledBitmap(bitmap, Constants.PIC_IMAGE_DISP_WIDTH, Constants.PIC_IMAGE_DISP_HEIGHT, false);

            image.setImageBitmap(bitmap);//I'm trying to change this imageview
        }
    }

ユーザーがオプションのいずれかをクリックしてファイルを取得または選択すると、imageView は変更されません。誰かお勧めはありますか?

4

2 に答える 2

1

メソッドは

protected void onActivityResult(int requestCode, int resultCode, Intent インテント)

ここでタイプミスした場合は、画像を設定した後に invalidate() を追加してみてください。

于 2013-06-12T06:31:16.363 に答える