2012-08-25 54 views
1

我有如下因素代码:采用Android相机意图,越来越URI,然后使用URI

public void take_picture(View view) 
{ 


Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
startActivityForResult(cameraIntent, CAMERA_REQUEST); 
} 


protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    ImageView slikaa = (ImageView)this.findViewById(R.id.slikaa); 
    if ((requestCode == CAMERA_REQUEST)&& (resultCode == Activity.RESULT_OK)) { 

Bitmap photo = (Bitmap) data.getExtras().get("data"); 
     slikaa.setImageBitmap(photo); 


} 

现在的问题是如何获取的图像路径(它保存到我的数据库),然后再,用它在图片显示(我不知道怎么弄的路径字符串,然后重新使用它)

回答

0
String path; 

Public void take_picture(){ 

    Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
    File dir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM); 
    File output = new File(dir,"gtumca.png"); 
    cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT,Uri.fromFile(output)); 
    path = output.getAbsolutePath(); <------------- 
    startActivityForResult(cameraIntent, TAKE_PHOTO); 

} 
2

为了得到图像路径在onActivityResult则需要通过发送图片的路径启动相机以意图为:

 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 

     //ContentValues values = new ContentValues(); 
     ContentValues values = new ContentValues(3); 
     values.put(MediaStore.Images.Media.DISPLAY_NAME, "testing"); 
     values.put(MediaStore.Images.Media.DESCRIPTION, "this is description"); 
     values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg"); 
     imageFilePath = MainActivity.this.getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values); 
     intent.putExtra(MediaStore.EXTRA_OUTPUT, imageFilePath); 

     startActivityForResult(intent, CAMERA_REQUEST); 

和onActivityResult

  protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
      ImageView slikaa = (ImageView)this.findViewById(R.id.slikaa); 
      if ((requestCode == CAMERA_REQUEST)&& (resultCode == Activity.RESULT_OK)) { 
      //get image from path 

      Bitmap photo = (Bitmap) data.getExtras().get("data"); 
      photo = BitmapFactory.decodeStream(this.getContentResolver() 
       .openInputStream(imageFilePath), null, op); 
      slikaa.setImageBitmap(pic); 

      //slikaa.setImageBitmap(photo); 
      } 
+1

什么是 “运” 的意思是我这一行:eStream(this.getContentResolver().openInputStream(imageFilePath),空,OP);我搜索了网络,我发现这个选项变量。但它不适合我...... – Gregor

+0

@Gregor:“op”代表什么?我现在也遇到同样的问题,你解决了吗? – pearmak

+0

我没有深入它......我只使用'从画廊意图中选择' - 已经在手机的画廊中的图片。我可以帮你,而不是相机意图 – Gregor