android7.0 拍照以及图片剪辑--(再次修改)

本文针对Android 7.0版本,探讨了拍照和图片剪辑的问题,指出6.0、8.0版本可能出现的文件找不到错误。推荐使用第三方库uCrop解决图片剪辑问题,并详细介绍了uCrop的集成步骤和使用方法,包括添加依赖、权限申请、启动剪辑、处理返回结果以及图片显示的流程。在Android 7.0及以上版本,需要通过特定方式获取图片。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果你是在fragment里头调用的拍照,出了bug 可以查看 这篇文章 点我 不懂的可以留言。

这篇博客对于7.0的版本的修改。主要是在文件存储的处理。

6.0、8.0版本使用本文的存储文件会出现  java.io.FileNotFoundException: No such file or directory  找不到文件夹

至于怎么做版本适配大家可以度娘一下,我这个问题往后我处理好放在博客给大家看看还有什么不足的,还请指点。


本次修改的地方是使用了第三方的截图开源框架  uCrop,解决了一些机型剪辑图片时gg了。原因一个就是,Android自带的截图有点坑啊(应该是我用不好的原因)毕竟别人的框架也是基于系统的所提供嘛。 


这边先说明一下uCrop的使用,再往下看就是拍照功能的实现

1、添加依赖走起   -->app.gradle

implementation 'com.yalantis:ucrop:1.4.1'
-->build.gradle  (Project)

allprojects {
    repositories {
        google()
        jcenter()
        maven { url "https://jitpack.io" }  //添加的是这句
    }
}

2、申请activity,这个并不是说你自己去创建一个,你看清楚他的包名,uCrop是作者的喔。

<activity
    android:name="com.yalantis.ucrop.UCropActivity"
    android:screenOrientation="portrait"
    android:theme="@style/Theme.AppCompat.Light.NoActionBar"/>

3、开搞啦。这里直接使用代码就可以,截图跳转到UCropActivity

        UCrop uCrop = UCrop.of(uri, cropUri);  //第一参数是处理图片你的文件的路径,第二个参数就是存放剪辑后的路径
        UCrop.Options options = new UCrop.Options();
        //设置裁剪图片可操作的手势
        options.setAllowedGestures(UCropActivity.SCALE, UCropActivity.ROTATE, UCropActivity.ALL);
        //是否隐藏底部容器,默认显示
        options.setHideBottomControls(true);
        //设置toolbar颜色
        options.setToolbarColor(ActivityCompat.getColor(activity, R.color.colorPrimary));
        //设置状态栏颜色
        options.setStatusBarColor(ActivityCompat.getColor(activity, R.color.colorPrimary));
//        //是否能调整裁剪框
//        options.setShowCropFrame(true); 
        options.setCompressionFormat(Bitmap.CompressFormat.JPEG);

        //UCrop配置
        //设置裁剪图片的宽高比,比如1:1  你自己随意
        uCrop.withAspectRatio(1, 1);
        uCrop.withMaxResultSize(250,250);
        uCrop.withOptions(options);
        //uCrop.useSourceImageAspectRatio();
        //跳转裁剪页面
        uCrop.start(getContext(),this,CODE_RESULT_REQUEST);
//start 方法中提供几种方式
             
        也就是说你在fragment、activity  都可
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值