Android拍照获得的图片太小


用下面的方法获得的直接就是大图片:

/**
 * 拍照并把照片保存到SD卡filePath路径下
 *
 * @author Bottle
 *
 * @Date 2013-4-10 上午10:35:58
 */
public class TakePhoto extends Activity {
 private Context mContext;
 private String filePath;

 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  mContext = TakePhoto.this;

  String state = Environment.getExternalStorageState(); // 判断是否存在sd卡
  if (state.equals(Environment.MEDIA_MOUNTED)) { // 直接调用系统的照相机
   Intent intent = new Intent("Android.media.action.IMAGE_CAPTURE");
   filePath = getFileName();
   intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(filePath)));
   startActivityForResult(intent, 0);
  } else {
   showToast("请检查手机是否有SD卡");
  }
 }

 /**
  * 生成文件路径和文件名
  *
  * @return
  */
 private String getFileName() {
  String saveDir = Environment.getExternalStorageDirectory() + "/myPic";
  File dir = new File(saveDir);
  if (!dir.exists()) {
   dir.mkdir(); // 创建文件夹
  }
  //用日期作为文件名,确保唯一性
  Date date = new Date();
  SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss");
  String fileName = saveDir + "/" + formatter.format(date) + ".PNG";

  return fileName;
 }

 //拍摄完成后执行
 @Override
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  //返回值==-1表示拍摄成功
  if (resultCode == -1) {
   showToast("图片保存到" + filePath);
  } else {
   showToast("拍摄图片失败");
  }
  this.finish();
 }
 
 /**
  * 显示Toast
  *
  * @param content
  */
 protected void showToast(String showText) {
  Toast.makeText(mContext, showText, Toast.LENGTH_SHORT).show();
 }
}

相关内容

    暂无相关文章