2013-11-21 135 views
0

我试图点击片段中的一张照片并将其显示在我的应用程序中。点击照片后,imageView未设置,我看不到照片显示。有谁知道为什么?使用相机拍照后不显示图片

你是否还认为有更好的方式来编写片段内的图片代码?

public class ImageFragment extends Fragment{ 


private Uri imageUri; 
private String mPath; 
private ImageView image; 
Bitmap bitmap = null; 
private File tempPhoto; 
@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
    { 
    View v = inflater.inflate(R.layout.fragment_image, container, false); 
    ImageButton snap=((ImageButton)v.findViewById(R.id.snap)); 
    image = ((ImageView) v.findViewById(R.id.image)); 
    snap.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View arg0) { 

       Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
       File imagePath; 

       try 
       { 
        tempPhoto = createTemporaryFile("picture", ".png"); 
        tempPhoto.delete(); 
       } 

       catch(Exception e) 
       { 

        return ; 
       } 

       imageUri = Uri.fromFile(tempPhoto); 
       cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT,imageUri); 
       startActivityForResult(cameraIntent, 1); 

      } 
     }); 

    return v; 
    } 

private File createTemporaryFile(String part, String ext) throws Exception 
    { 
     File tempDir= Environment.getExternalStorageDirectory(); 
     tempDir=new File(tempDir.getAbsolutePath()+"/.temp/"); 
     if(!tempDir.exists()) 
     { 
      tempDir.mkdir(); 
     } 
     return File.createTempFile(part, ext, tempDir); 
    } 

    @Override 
    public void onActivityResult(int requestCode, int resultCode, Intent data) { 
     // super.onActivityResult(requestCode, resultCode, data); 
     ContentResolver cr = getActivity().getContentResolver(); 
     try { 
      cr.notifyChange(imageUri, null); 
      File imageFile = new File(tempPhoto.getAbsolutePath()); 


     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

      Bitmap photo=null; 
      if (resultCode == 1) { 
       try { 
        photo = android.provider.MediaStore.Images.Media.getBitmap(cr, Uri.fromFile(tempPhoto)); 
        image.setImageBitmap(photo); 
       } catch (FileNotFoundException e) { 

        e.printStackTrace(); 
       } catch (Exception e) { 

        e.printStackTrace(); 
       } 
      } 

    } 

    @Override 
    public void onActivityCreated(Bundle savedInstanceState) { 
     super.onActivityCreated(savedInstanceState); 
    } 

    @Override 
    public void onLowMemory() { 
     // TODO Auto-generated method stub 
     super.onLowMemory(); 
    } 

}

回答

1

你比较 'resultCode为' 与Activity.RESULT_OK(= - 1)onActivityResult功能。

Replace: 如果(resultCode为== 1) by: 如果(resultCode为== Activity.RESULT_OK)

+0

谢谢,这工作 – gazubi

相关问题