Android Imageview未更新相机结果活动

时间:2015-12-08 04:34:39

标签: android android-camera-intent

我的Samsung 4S手机应用程序中的相机活动中拍摄的照片未更新图像视图。我将照片的Uri保存在saveinstancestate中,照片在相机上,但它不会更新imageview。以下是代码。

  protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == RESULT_OK) {
        Bitmap image1;
        if(requestCode == RESULT_CROP_IMAGE)
        {
            Bundle extras = data.getExtras();
            image1 = extras.getParcelable("data");
        }
        else {
            if (requestCode == RESULT_LOAD_IMAGE) {
                selectedImage = imageUri;  // this gets the photo just taken
            } else
                selectedImage = data.getData();  // this gets an existing photo and it works
            String[] filePathColumn = {MediaStore.Images.Media.DATA};
            Cursor cursor = getContentResolver().query(selectedImage,
                    filePathColumn, null, null, null);
            cursor.moveToFirst();
            int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
            picturePath = cursor.getString(columnIndex);
            cursor.close();
            image1 = BitmapFactory.decodeFile(picturePath);
        }
        displayphoto = Bitmap.createScaledBitmap(image1, newWidth, newHeight, true);
        ImageView imageView = (ImageView) findViewById(R.id.myImage);
        imageView.setEnabled(true);
        imageView.setImageBitmap(displayphoto);
        Button cropPhoto = (Button)findViewById(R.id.cropPhoto);
        cropPhoto.setVisibility(View.VISIBLE);

不仅imageView没有显示图像,cropPhoto按钮也不会出现。在调试模式下,我可以看到正在执行的指令,我检查了返回照片的尺寸,这些尺寸是正确的,但没有显示。但是,如果我从相机中获取现有照片,一切正常,所以我知道它与丢失全局变量有关。我知道在拍摄照片时必须为某些对象检索instancestate,我在下面的代码中执行此操作,因此我知道我的imageUri已正确返回。

      @Override
public void onSaveInstanceState(Bundle savedInstanceState) {
    savedInstanceState.putParcelable("myURI", imageUri);
    savedInstanceState.putString("myPath", mCurrentPhotoPath);
    super.onSaveInstanceState(savedInstanceState);
}
public void onRestoreInstanceState(Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);
    imageUri = savedInstanceState.getParcelable("myURI");
    mCurrentPhotoPath = savedInstanceState.getString("myPath");
   }

那么这里缺少什么?为什么我的图像或按钮不显示?这与拍摄照片时丢失全局变量有关吗?另外,我应该提一下,它每隔一段时间就可以工作并且图像会出现。我不明白为什么它通常不会出现。

0 个答案:

没有答案