呼叫android系統相機拍照並將圖片傳指定路徑並獲取相片
阿新 • • 發佈:2018-12-30
public void onClick(View v) {
if (v.getId() == R.id.btn_take) {
// 調系統相機
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
Log.e(TAG, "sd卡掛載");
path = Environment.getExternalStorageDirectory() + "/*****/photos/";
Log .e(TAG, "指定path: " + path);
File dir = new File(path);
if (!dir.exists()) {
dir.mkdirs(); // 目錄
}
photoName = getPhotoName(); //通過當前時間來定照片的名字
Log.e(TAG, "photoName: " + photoName); // photoName:
// 2017-03-1513:28:20.png
//
photoName = photoName.replace("-", "");
photoName = photoName.replace(":", "");
Log.e(TAG, "new-->photoName: " + photoName);
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File f = new File(dir, photoName);
uri = Uri.fromFile(f);
Log.e(TAG, "" + uri);
intent.putExtra(MediaStore.EXTRA_OUTPUT, uri); // 指定路徑儲存
intent.putExtra(MediaStore.Images.Media.ORIENTATION, 0);
startActivityForResult(intent, CAMERA_PHOTO);
} else {
Log.e(TAG, "不存在sd卡");
}
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CAMERA_PHOTO) {
Log.e(TAG, "CAMERA_PHOTO回撥");
if (resultCode == RESULT_OK) {
Log.e(TAG, "進入 RESULT_OK");
// 獲取圖片的uri
if (data != null) {
Bitmap bitmap1 = data.getParcelableExtra("data");
Log.e(TAG, "data!=null, bitmap1: " + bitmap1);
} else {
String uripath = uri.getPath();
Bitmap bitmap2 = BitmapFactory.decodeFile(uripath);
if (bitmap2 != null) {
// 得到bitmap2,不使用glide處理,自己處理
}
////也可通過圖片路徑獲取相關資訊如下//////////////////////////
Item item = new Item();
item.setPicUrl(uri.toString());
item.setTitle(photoName);
imagesList.add(item);
Log.e(TAG, "item: " + item.toString());
Log.e(TAG, "imagesList.size(): " + imagesList.size());
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。