安卓高级6 拍照或者从相册获取图片 并检测旋转角度或者更新画册扫描
生活随笔
收集整理的这篇文章主要介绍了
安卓高级6 拍照或者从相册获取图片 并检测旋转角度或者更新画册扫描
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
1. 旋转角度
当我们从手机读取图片时候发现其图片旋转了90或者其他度数,比如三星拍照后的照片就是个例子.这时候我们读取出来判断角度然后在逆向回转为正向的图片
Exif是 Exchangeable Image File 缩写
2. 调用系统的剪切图片软件
当我们某个图片过大 想让用户自行选择剪切区域
以下是可以传入到intent的数值 (putExtra)
| crop | String | 设置true才能出剪辑的小方框,不然没有剪辑功能,只能选取图片 | intent.putExtra(“crop”, “true”); |
| aspectX | int | 放大缩小比例的X | intent.putExtra(“aspectX”, 1); |
| aspectY | int | 放大缩小比例的Y | intent.putExtra(“aspectY”, 1); |
| outputX | int | //这个是限制输出图片x方向大小(最大限制) | intent.putExtra(“outputX”, 320); |
| outputY | int | //这个是限制输出图片y方向大小(最大限制) | intent.putExtra(“outputY”, 320); |
| return-data | boolean | 是否返回数据图(后面有案例) | intent.putExtra(“return-data”, true); |
| scale和scaleUpIfNeeded | boolean | 切图大小不足输出,边缘出现类似毛边或者锯齿等 | innerIntent.putExtra(“scale”, true);innerIntent.putExtra(“scaleUpIfNeeded”, true); |
3. 拍照获取图片
直接案例:
回调acativityforesult
protected void onActivityResult(int requestCode, int resultCode, Intent data) {if (resultCode != RESULT_OK) {return;}if (!mPictureFile.exists()) {showTip("拍照失败,请重试");return;}fileSrc = mPictureFile.getAbsolutePath();}4.更新画册
当你更新一张图片在手机中时不会立即出现在图册中,需要重启手机或者通知系统去扫描
private void updateGallery(String filename) {MediaScannerConnection.scanFile(this, new String[] {filename}, null,new MediaScannerConnection.OnScanCompletedListener() {@Overridepublic void onScanCompleted(String path, Uri uri) {}});}5.从手机相册获取
直接案例
Intent intent = new Intent();intent.setType("image/*");intent.setAction(Intent.ACTION_PICK);startActivityForResult(intent, REQUEST_PICTURE_CHOOSE);回调:
@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {if (resultCode != RESULT_OK) {return;} if ("file".equals(data.getData().getScheme())) {// 有些低版本机型返回的Uri模式为filefileSrc = data.getData().getPath();} else {// Uri模型为content//选择数据地址字段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();}}转载于:https://www.cnblogs.com/muyuge/p/6152133.html
总结
以上是生活随笔为你收集整理的安卓高级6 拍照或者从相册获取图片 并检测旋转角度或者更新画册扫描的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 命令模式——HeadFirst设计模式学
- 下一篇: 用户数以及psp