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中的问题。 那么,我如何1)包括一种方法来添加捕获图像的文件名或2)我假设这里的'位图'包含我捕获的图像。 如果是这样,我如何将它保存到一个位置以及我指定的名称。 或者3)因为这台相机是我在单独的活动中使用的服务,有没有一种方法可以使用内容值将捕获的图像返回到之前的活动?
像使用.getExtras(“数据”)方法一样获取数据将允许您获取照片的高分辨率版本。 要保存文件,请查看压缩方法[1]。 然后使用FileOutputSteam [2],您可以轻松定义要保存的文件名。
http://developer.android.com/reference/android/graphics/Bitmap.html#compress(android.graphics.Bitmap.CompressFormat,int,java.io.OutputStream)
http://download.oracle.com/javase/1.4.2/docs/api/java/io/FileOutputStream.html