Android位图图像不会显示在imageview中

时间:2013-06-12 06:18:18

标签: android image onclicklistener

我无法显示位图图像。在我的应用程序中,用户可以单击“图像”视图,并且会出现“警报对话框”提示,以选择使用相机拍摄照片或从文件中获取照片。我有一个名为'image'的图像视图。这是我的警报Dialog听众:

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不会更改。有人有推荐吗?

2 个答案:

答案 0 :(得分:1)

方法应该是

protected void onActivityResult(int requestCode,int resultCode,Intent intent)

如果您刚刚输入错误,请在设置图像后尝试添加invalidate()。

答案 1 :(得分:0)

我找到了另一种解决方案及其对我的工作。

来自here

$scope.$on('yourEvent' , function(){
    //Handle your logic            
});