歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

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();
 }
}

更多Android相關信息見Android 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=11

Copyright © Linux教程網 All Rights Reserved