2012-01-12 63 views
1
@Override 
protected void onCreate(Bundle savedInstanceState) {  
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.picture_choice_activity); 

    Button takePictureButton = (Button)findViewById(R.id.takePictureButton); 
    takePictureButton.setOnClickListener(new OnClickListener() { 
     public void onClick(View v){ 
      Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
      startActivityForResult(intent, IMAGE_CAPTURE); 
     } 
    }); 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if(requestCode == IMAGE_CAPTURE){ 
     if(resultCode == Activity.RESULT_OK){ 
      // I should get the path here 
     }else if(resultCode == Activity.RESULT_CANCELED){ 

     } 
    } 
} 

在上面的代码中,我试图获取捕获图像的路径。我不应该使用EXTRA_OUTPUT来指定保存图像的自定义路径。我怎样才能做到这一点?在onActivityResult方法中学习捕获图像的路径

回答

2

查收,http://developer.android.com/guide/topics/media/camera.html#intents

MediaStore.EXTRA_OUTPUT:此设置需要一个开放的对象,指定的路径和文件名,你想保存的图片。此设置是可选的,但强烈建议。如果您未指定此值,相机应用程序会将所请求的图片以默认名称保存在默认位置,并在返回的意图的Intent.getData()字段中指定。

所以,检查Intent dataonActivityResult()

3

使用这乌尔onActivity结果

final Uri contentUri = data.getData(); 
final String[] proj = { MediaStore.Images.Media.DATA}; 
final Cursor cursor = managedQuery(contentUri, proj, null, null, null); 
final int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); 
cursor.moveToLast(); 
final String path = cursor.getString(column_index); 
+0

感谢的人!有用 :) – 2015-11-30 11:19:41