2011-07-17 120 views
1

我有一个应用程序,它使用默认相机拍照并将其保存在数据库中。Android:相机问题(拍照)

,我用相机代码:

package com.android.SamsungMIv4; 

import java.io.ByteArrayOutputStream; 
import java.io.File; 
import java.io.FileNotFoundException; 
import java.io.FileOutputStream; 
import java.io.IOException; 

import android.app.Activity; 
import android.content.ActivityNotFoundException; 
import android.content.ContentValues; 
import android.content.Intent; 
import android.graphics.Bitmap; 
import android.net.Uri; 
import android.os.Bundle; 
import android.os.Environment; 
import android.provider.MediaStore; 
import android.util.Log; 
import android.widget.Toast; 

public class camera extends Activity { 
private static final int TAKEPICTURE_ACTIVITY = 0; 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    Intent i = new Intent("android.media.action.IMAGE_CAPTURE"); 
    try{ 
      startActivityForResult(i, TAKEPICTURE_ACTIVITY); 
    }catch(ActivityNotFoundException e){ 
      Toast.makeText(this, "Application not available", 
Toast.LENGTH_SHORT).show();} 
      //Log.e(TAG, "Error in taking picture"); 
    } 
@Override 
    protected void onActivityResult(int requestCode, int resultCode, 
Intent intent) { 
     super.onActivityResult(requestCode, resultCode, intent); 
    if (requestCode == TAKEPICTURE_ACTIVITY){ 
      if (resultCode == RESULT_OK) { 
          Bundle extras = intent.getExtras(); 
          Bitmap bitmap = (Bitmap) extras.get("data") ; 

     } 
} 
} 
} 

但是,问题是,我不能指定拍摄的图像的名称,这将导致在DB的问题对我来说。那么,我如何包括一个方法来添加捕获的图像的文件名 或 2)我假设这里的'位图'包含我捕获的图像。如果是这样,我如何将它保存到一个位置以及我指定的名称。 或 3)因为这台相机是我在单独的活动中使用的服务,有没有一种方法可以使用内容值将捕获的图像返回到之前的活动?

回答

0

正如您对.getExtras(“数据”)方法所做的那样,获取数据将允许您获取照片的高分辨率版本。要保存文件,请查看压缩方法[1]。然后使用FileOutputSteam [2],您可以轻松定义要保存的文件名。

  1. http://developer.android.com/reference/android/graphics/Bitmap.html#compress(android.graphics.Bitmap.CompressFormat,整型,java.io.OutputStream中)

  2. http://download.oracle.com/javase/1.4.2/docs/api/java/io/FileOutputStream.html