安卓高级6 拍照或者从相册获取图片 并检测旋转角度或者更新画册扫描
生活随笔
收集整理的這篇文章主要介紹了
安卓高级6 拍照或者从相册获取图片 并检测旋转角度或者更新画册扫描
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1. 旋轉(zhuǎn)角度
當(dāng)我們從手機(jī)讀取圖片時(shí)候發(fā)現(xiàn)其圖片旋轉(zhuǎn)了90或者其他度數(shù),比如三星拍照后的照片就是個(gè)例子.這時(shí)候我們讀取出來判斷角度然后在逆向回轉(zhuǎn)為正向的圖片
Exif是 Exchangeable Image File 縮寫
2. 調(diào)用系統(tǒng)的剪切圖片軟件
當(dāng)我們某個(gè)圖片過大 想讓用戶自行選擇剪切區(qū)域
以下是可以傳入到intent的數(shù)值 (putExtra)
| crop | String | 設(shè)置true才能出剪輯的小方框,不然沒有剪輯功能,只能選取圖片 | intent.putExtra(“crop”, “true”); |
| aspectX | int | 放大縮小比例的X | intent.putExtra(“aspectX”, 1); |
| aspectY | int | 放大縮小比例的Y | intent.putExtra(“aspectY”, 1); |
| outputX | int | //這個(gè)是限制輸出圖片x方向大小(最大限制) | intent.putExtra(“outputX”, 320); |
| outputY | int | //這個(gè)是限制輸出圖片y方向大小(最大限制) | intent.putExtra(“outputY”, 320); |
| return-data | boolean | 是否返回?cái)?shù)據(jù)圖(后面有案例) | intent.putExtra(“return-data”, true); |
| scale和scaleUpIfNeeded | boolean | 切圖大小不足輸出,邊緣出現(xiàn)類似毛邊或者鋸齒等 | innerIntent.putExtra(“scale”, true);innerIntent.putExtra(“scaleUpIfNeeded”, true); |
3. 拍照獲取圖片
直接案例:
回調(diào)acativityforesult
protected void onActivityResult(int requestCode, int resultCode, Intent data) {if (resultCode != RESULT_OK) {return;}if (!mPictureFile.exists()) {showTip("拍照失敗,請重試");return;}fileSrc = mPictureFile.getAbsolutePath();}4.更新畫冊
當(dāng)你更新一張圖片在手機(jī)中時(shí)不會立即出現(xiàn)在圖冊中,需要重啟手機(jī)或者通知系統(tǒng)去掃描
private void updateGallery(String filename) {MediaScannerConnection.scanFile(this, new String[] {filename}, null,new MediaScannerConnection.OnScanCompletedListener() {@Overridepublic void onScanCompleted(String path, Uri uri) {}});}5.從手機(jī)相冊獲取
直接案例
Intent intent = new Intent();intent.setType("image/*");intent.setAction(Intent.ACTION_PICK);startActivityForResult(intent, REQUEST_PICTURE_CHOOSE);回調(diào):
@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {if (resultCode != RESULT_OK) {return;} if ("file".equals(data.getData().getScheme())) {// 有些低版本機(jī)型返回的Uri模式為filefileSrc = data.getData().getPath();} else {// Uri模型為content//選擇數(shù)據(jù)地址字段String[] proj = {MediaStore.Images.Media.DATA};Cursor cursor = getContentResolver().query(data.getData(), proj,null, null, null);cursor.moveToFirst();//獲取字段在第幾列int idx = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);//獲取所在地址fileSrc = cursor.getString(idx);cursor.close();}}轉(zhuǎn)載于:https://www.cnblogs.com/muyuge/p/6152133.html
總結(jié)
以上是生活随笔為你收集整理的安卓高级6 拍照或者从相册获取图片 并检测旋转角度或者更新画册扫描的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 命令模式——HeadFirst设计模式学
- 下一篇: 用户数以及psp