android開啟系統相機分別獲得原圖和縮圖
第一種:獲得縮圖:
開啟相機
private void photo() {
Intent openCameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(openCameraIntent, TAKE_PICTURE);
}
這裡使用data得到的只是縮圖,大小一般30k左右,一般用在手機展示如頭像這種小圖,想上傳圖片資料到伺服器就不合適了!
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
switch (requestCode) {
case TAKE_PICTURE:
String fileName = String.valueOf(System.currentTimeMillis());
Bitmap bm = (Bitmap) data.getExtras().get("data");
String path = FileUtils.saveBitmap(bm, fileName);
if (!StringUtil.isBland(path)) {
String decodePath = FileUtils.saveBitmap(UIUtils.decodeBitmap(path), "decode" + fileName);
if (!StringUtil.isBland(decodePath)) {
selectImagesDecodePath.add(decodePath);
selectImagesPath.add(path);
showAdapter();
}
}
break;
}
}
super.onActivityResult(requestCode, resultCode, data);
}
第二種:獲得原圖
開啟相機
private void photo() {
File dir = new File(Environment.getExternalStorageDirectory() + "/DataCollect/");
if (!dir.exists()) dir.mkdirs();
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
localTempImg = System.currentTimeMillis();
localTempImgFileName = localTempImg + ".jpg";
File f = new File(dir, localTempImgFileName);
Uri u = Uri.fromFile(f);
intent.putExtra(MediaStore.Images.Media.ORIENTATION, 0);
intent.putExtra(MediaStore.EXTRA_OUTPUT, u);
startActivityForResult(intent, TAKE_PICTURE);
}
這裡的f.getAbsolutePath()就是原圖的路徑了:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
switch (requestCode) {
case TAKE_PICTURE:
File f = new File(Environment.getExternalStorageDirectory()
+ "/DataCollect/" + localTempImgFileName);
LogUtils.e(f.getAbsolutePath());
if (!StringUtil.isBland(f.getAbsolutePath())) {
String decodePath = FileUtils.saveBitmap(UIUtils.decodeBitmap(f.getAbsolutePath()), "decode" + localTempImg);
if (!StringUtil.isBland(decodePath)) {
selectImagesDecodePath.add(decodePath);
selectImagesPoth.add(f.getAbsolutePath());
showAdapter();
}
}
break;
}
}
super.onActivityResult(requestCode, resultCode, data);
}
這裡可能用到他的Uri資料,
Uri u=Uri.parse(android.provider.MediaStore.Images.Media.insertImage(getContentResolver(),
f.getAbsolutePath(), null, null));
由相機或相簿中的圖片bitmap與uri互相轉換
1、bitmap to uri
Uri uri = Uri.parse(MediaStore.Images.Media.insertImage(getContentResolver(), bitmap, null,null));
2、uri to bitmap
Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), uri);
許可權:
<uses-permission Android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
相關文章
- Android開發獲取相機拍照的原圖(並非縮圖)Android
- android短視訊開發,呼叫相機、相簿,壓縮圖片後上傳Android
- Android 從手機相簿獲取圖片 uri 路徑 從相機獲取照片Android
- Android學習之呼叫系統相機拍照、截圖並儲存Android
- win10系統中如何恢復/還原縮圖Win10
- Android呼叫系統相簿和相機拍照Android
- 如和獲得系統熱鍵
- Win10系統怎麼開啟相機 win10開啟相機的方法Win10
- Android中使用封裝的OKHttp上傳圖片,從相機和相簿中獲取圖片並剪下Android封裝HTTP
- 實現如何Android 獲得圖片的總結Android
- 適配Android4.4~Android11,呼叫系統相機,系統相簿,系統圖片裁剪,轉換檔案(對圖片進行上傳等操作)Android
- 【前端】壓縮圖片以及圖片相關概念前端
- MATLAB獲得子圖位置Matlab
- Android 圖片縮放Android
- Android呼叫系統相機,相容7.0系統Android
- Android的CameraX獲得相機支援解析度的方法Android
- 圖解 Android 事件分發機制圖解Android事件
- Linux 獲取系統開機/啟動時間Linux
- Android系統架構圖Android架構
- 微信小程式開發之從相簿獲取圖片 使用相機拍照 本地圖片上傳微信小程式地圖
- java 獲得系統資訊Java
- Android 視訊縮圖的快取機制和非同步載入Android快取非同步
- Android大圖壓縮心得Android
- android下圖片壓縮Android
- windows10系統如何開啟內涵圖種子【圖文教程】Windows
- 圖解 Android 系列(一)揭祕 Android 系統啟動過程圖解Android
- Android壓縮圖片後再上傳圖片Android
- win10系統“幫助和支援”功能怎麼開啟【圖文】Win10
- Android 12(S) 圖形顯示系統 - 開篇Android
- Win10系統怎麼使用大圖示檢視縮圖Win10
- Win10系統怎麼顯示PSD縮圖【圖文】Win10
- Windows10系統桌面圖片怎麼顯示為縮圖Windows
- Windows10系統開啟EDIUS的方法【圖文】Windows
- Android 呼叫相簿 拍照 實現系統控制元件縮放 切割圖片Android控制元件
- asp 獲取圖片的 大小 和畫素 ,解析度,以及壓縮圖片
- jQuery如何獲得圖片的路徑jQuery
- Linux系統啟動流程圖Linux流程圖
- ugui 縮放圖片使圖片的四個角和四邊保持原樣UGUI