歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android拍照獲得的圖片太小

Android拍照獲得的圖片太小

日期:2017/3/1 9:58:56   编辑:Linux編程

用下面的方法獲得的直接就是大圖片:

/**
* 拍照並把照片保存到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