首页
学习
活动
专区
工具
TVP
发布

Android图片裁剪之自由裁剪

是这种,客户须要做一个图片上传的功能,这个图片须要裁剪。一般而言,这东西用系统自带的裁剪就搞定了。但是客户不,他要能够自由裁剪,就是长宽比不固定,想裁成什么比例就裁成什么比例,我一听,蛋都碎了。   ...图片裁剪的功能系统自带了,和我的需求仅仅有一点不一样,就是它是固定宽高比的,设定了宽高比就不能再改变,而我须要自由宽高比。好吧,既然仅仅有这一点不一样,那给他改改即可了。   ...但是找了一圈,仅仅有一个哥哥自己写了一个自己定义裁剪的功能。跑了一下,基本功能能够实现,但是太Ugly了,并且不太稳定,有一些适配没有做好。想想还是自己改源代码好了,嗯,就这样。   ...下载gallery的源代码,抽取裁剪功能的代码,如图 这基本就好了,然后CropImage.java里面有叉叉,自己改下就好了。...然后怎么让他自由裁剪呢,看下mAspectX变量的使用,源代码里面用mAspectX和mAspectY来做宽高比计算的,我们就把他计算宽高比的地方凝视掉就好了。

2.3K20

Android 图片裁剪

Android 图片裁剪 前言 正文 一、创建并配置项目 二、权限申请 三、获取图片Uri 四、图片裁剪 尾声 运行效果图 ?...前言   图片裁剪是对图片进行区域选定,然后裁剪选定的区域,形成一个图片,然后再对这个图片进行压缩,最终返回结果图片。...正文   从上面的描述来看貌似是挺简单的是吧,不过实际操作起来就没有那么简单了,下面先来看看简单的实现方式,就是Android自带的裁剪。...四、图片裁剪 既然是调用Android系统的图片裁剪,那么自然也和打开系统相册差不多,依然是先创建一个请求码: /** * 图片剪裁请求码 */ public static...这个可以通过外力来解决,圆形图片很多方式能做到,比如第三方框架、自定义View等。 还记得刚才用过的Glide吗?

2.4K20
您找到你想要的搜索结果了吗?
是的
没有找到

Android 图片裁剪 (附源码)

Android 图片裁剪 前言 正文 一、创建并配置项目 二、权限申请 三、获取图片Uri 四、图片裁剪 五、源码 尾声 运行效果图 前言   图片裁剪是对图片进行区域选定,然后裁剪选定的区域,形成一个图片...正文   从上面的描述来看貌似是挺简单的是吧,不过实际操作起来就没有那么简单了,下面先来看看简单的实现方式,就是Android自带的裁剪。...四、图片裁剪 既然是调用Android系统的图片裁剪,那么自然也和打开系统相册差不多,依然是先创建一个请求码: /** * 图片剪裁请求码 */ public static...final int PICTURE_CROPPING_CODE = 200; 然后写一个裁剪的方法。...这个可以通过外力来解决,圆形图片很多方式能做到,比如第三方框架、自定义View等。 还记得刚才用过的Glide吗?

1.5K30

Android实现图片区域裁剪功能

今天做的就是关于实现图片的区域裁剪功能。由于项目功能的需要笔者需要实现PDF文档的阅读,并且就某个页面实现“图片”裁剪(一个页面理解为一张图片)。笔者对着方面是一点儿也不熟悉,因此就得上网查资料了。...之后笔者找到了Android可以通过调用系统相册、拍照实现图片的裁剪、缩放功能。 这一过程就像是在某个应用中上传头像,并对头像进行调整。现做一个记录与分享。 首先我们还是来看看实际的效果图吧!...; import android.net.Uri; import android.os.Bundle; import android.os.Environment; import android.provider.MediaStore...; import android.widget.ImageButton; import android.widget.ImageView; /** * 调用系统相册或者拍照来实现图片的裁剪、缩放...一个简单的图片裁剪功能就完成了,完整的源码:Android实现图片裁剪功能 以上就是本文的全部内容,希望对大家的学习有所帮助。

2.2K10

Android 仿微信, QQ 裁剪

主要讲解的功能点 使用说明 整体的实现思路 裁剪框的实现 图片缩放的实现,包括放大,缩小,移动,裁剪等 我们先来看看我们实现的效果图 拍照裁剪的 ? 相册裁剪的 ?...它的实现原理是通过空白的 fragment 处理实现的,有兴趣的可以看我这一篇博客 Android Fragment 的妙用 - 优雅地申请权限和处理 onActivityResult ClipImageActivity.goToClipActivity...即裁剪框单独一个 View。 下面,让我们一起来看看裁剪框功能的实现。 ---- 裁剪框功能的实现 ?...// 释放资源 mImageView.destroyDrawingCache(); return zoomedCropBitmap; } ---- 题外话 这个 Demo 涉及到的 Android...Android 7.0 图片拍照适配,6.0 动态权限申请,Android 使用空白 fragment 处理 onActivityResult,动态权限申请,自定义 View,View 的事件分发机制等等

1.4K30

Android画布Canvas裁剪效果演示--RevealView

图片资源如下图,就是几张灰色和彩色图片 思路是利用画布canvas的裁剪,先画出灰色的图片,再画出彩色图片并对彩色图片进行裁剪,先初始化一些参数 private Paint mPaint =...maxWidth = getMeasuredWidth(); maxHeight = maxHeight * scaleX; } //需要裁剪的宽高...maxWidth / 7; needClipHeight = maxHeight; } 在onDraw方法中进行处理,要注意的是,为了不影响灰色图片,需要新创建一层图层,对画布进行裁剪后...,在新图层中画出彩色图片,由于canvas的绘图是根据当前绘图的matrix进行处理的,所以要先裁剪将matrix改变再调用canvas的draw方法,倒过来将没有效果 @Override...needClipWidth / 2) { translateX = maxWidth / 2 - needClipWidth / 2; } //将画布裁剪

1.3K20

Android调用系统裁剪的实现方法

Android调用系统裁剪,这个已经使用的很熟悉了。但是近期项目里使用的时候遇到了一些小问题,所以在此整理一下,以作记录。...首先看代码: Intent intent1 = new Intent("com.android.camera.action.CROP"); intent1.setDataAndType(Uri.fromFile...因为在裁剪大图片或是高清图时,不管取多小,都不会有黑框,这就自然想到了裁剪后会有边缘的自动填充。 知道了问题的所在,就好解决了,然后就查找解决方法,跟想法一样,就是当图片裁剪后过小时,做填充拉伸。...在用到了这两条重要的属性之后呢,我的裁剪方法就OK了,修改之后代码是这样的: Intent intent1 = new Intent("com.android.camera.action.CROP");...以上这篇Android调用系统裁剪的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考。

1.6K10

Android 中拍照、相册选择、裁剪照片

官方推荐的做法是使用 FileProvider 来实现,**下面来看一下怎么实现这个 APP 中常见的功能: 一般来说,我们通过拍照来获取图片有以下步骤: 调用系统相机拍照 --> 调用系统裁剪程序裁剪裁照片并输出到指定目录...--> 读取裁剪后的图片 获取从相册选择的图片: 调用系统图库 --> 得到选择的图片的 Uri 并裁剪图片然后输出到指定目录 --> 读取裁剪后的图片 这里可能有些小伙伴会问了,为什么要调用系统的裁剪程序裁剪照片呢...因此要将图片裁剪之后再读取。可能有些小伙伴对 Uri 的概念还不是很清楚,Uri 通俗来说就是指向某个文件的路径,可以看成文件绝对路径封装后的一个对象,我们可以通过 Uri 来访问其指向的文件。...,并且最后裁剪的图片输出到内存卡中以便读取。...下面是上面例子的源码: Android 中拍照、相册选择、裁剪照片(兼容Android 7.0) 这里是 Github 地址,没积分的看这里 谢谢观看。。。

5.6K43

Android 图片选择到裁剪之步步深坑

前言 最近在自己的项目里实现了一个头像选择的功能,就是先从相册里选取一张图片再调用系统的裁剪功能来制作头像,效果就像下面这样: 本以为很小的一个功能,却远远没有我想的那样简单,可以说每一步都暗藏玄机,下面就让我带大家看看这里面究竟有哪些坑...; } Uri fileUri = Uri.fromFile(faceFile); routeToCrop(fileUri); //跳转到图片裁剪...第四步 在裁剪图片的Intent中加入对该图片的访问权限: private void routeToCrop(Uri uri) { Intent intent = new Intent("com.android.camera.action.CROP...我们这里裁剪的图片是用作头像的,所以大小一般都比较小。可以当图片的大小变大后就会发现,每次裁剪后在Intent中获取到的图片其实都是缩略图。...而解决的办法也很简单,我们需要给图片裁剪应用指定一个输出文件,用来存放裁剪后的图片: private void routeToCrop(Uri uri) { ...

1.8K80

Android基于PhotoView实现的头像圆形裁剪控件

前言 常见的图片裁剪有两种,一种是图片固定,裁剪框移动放缩来确定裁剪区域,早期见的比较多,缺点在于不能直接预览裁剪后的效果;还有一种现在比较普遍了,就是裁剪框固定,直接拖动缩放图片,便于预览裁剪结果。...一般来说,做图片裁剪的思路无外乎是先监听手势,获取坐标,再对图片变形,最后确定裁剪区域的坐标对位图进行裁剪,最后保存图片到本地。...我嘛还是个技术小白,一想到要监控手势这些就头疼,碰巧项目之前为了做查看大图而引入了大名鼎鼎的第三方图片查看控件——PhotoView(使用步骤参考这篇文章:Android PhotoView使用步骤实例详解...以后有时间的时候,还是应该仔细研究源码,踏踏实实从原理出发解决问题(* ̄︶ ̄)~ 最后,感谢几位博主的无私分享,特此鸣谢~ Android Bitmap 常见的几个操作:缩放,裁剪,旋转,偏移...Android ImageCropper 矩形 圆形 裁剪Android裁剪图片为圆形图片的实现原理与代码 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值

1.2K20

Android实现图片的裁剪(不调用系统功能)

接上一篇文章:Android实现图片区域裁剪功能 上一篇文章提及了通过调用系统相册或拍照来实现图片的缩放\裁剪。...不过这对于笔者项目的要求同样不适合,笔者需要的是通过对手机屏幕整个进行一个截图,并对这个截图进行裁剪操作。 依靠系统功能确实可以实现图片的裁剪,但是不够灵活。这里笔者提供一种较为灵活的做法。...我们通过红色边框的四个角来控制裁剪的大小,移动红色框体来控制裁剪的位置区域。...之后就是如何进行裁剪的操作了。操作在另一个Activity中进行。XML配置文件信息如下: <?xml version="1.0" encoding="utf-8"?...="true" android:layout_alignParentRight="true"/ </RelativeLayout 通过配置文件可以看到我们自定义了一个View(ImageView

1.4K20

全志Tina Linux 系统裁剪 boot0裁剪 uboot裁剪 内核裁剪 文件系统裁剪 C库裁剪 文件系统压缩

文章目录 1 概述 2 Tina系统裁剪简介 2.1 boot0裁剪 2.2 uboot裁剪 2.3 内核裁剪 2.3.1 删除不使用的功能 2.3.2 删除不使用的驱动 2.3.3 修改内核源代码 2.3.3.1...系统经过裁剪过后,通常也会提升启动速度以及减少内存占用。 本文介绍TinaLinux中系统裁剪的方法,为有裁剪需求的使用者提供参考。...对于大尺寸的裁剪效果往往比小尺寸的裁剪效果明显,比如rootfs裁剪1M可能很容易,对于uboot来说,则非常困难。 因此,后续主要介绍kernel以及rootfs的裁剪。...缺点 glibc Distribution 大 强大稳定,支持最多的cpu架构 占用空间大 uclibc Embedded 小 为嵌入式设计,可配置性好 不支持libdb与libnss bionic Android...小 提供了Android特性的函数 不提供libthread_db/libm musl Embedded 小 更小,高效静态链接,稳定 支持较少的cpu arch 当前Tina环境下可支持glibc

7.9K20

android音频编辑之音频裁剪的示例代码

要进行音频裁剪,我的方案是开启一个Service服务用于音频裁剪的耗时操作,主界面发送裁剪命令,同时注册EventBus接受裁剪的消息(当然也可以使用广播接受的方式)。...因此,在本篇主要会讲解以下内容: 音频编辑项目的整体结构 音频裁剪方法的流程实现 获取音频文件相关信息 计算裁剪时间点对应文件中数据的位置 写入wav文件头信息 写入wav文件裁剪部分的音频数据 下面是音频裁剪效果图...FileUtils.checkFileExist(path)){ return null; } if (android.os.Build.VERSION.SDK_INT = android.os.Build.VERSION_CODES.JELLY_BEAN...AudioFormat.ENCODING_PCM_8BIT,则是8位采样精度,如果是AudioFormat.ENCODING_PCM_16BIT,则是16位采样精度,如果是AudioFormat.ENCODING_PCM_FLOAT(android...,以及裁剪的数据大小,然后计算得到裁剪后的wav文件头信息,并写入新文件中,最后将源文件裁剪部分的数据写入到新文件中,最终得到裁剪后的wav文件了。

2K20

Android-图片的选择,裁剪,压缩,适配高版本

; //7.0以下设置保存图片的地址 Uri norTakePhotoSaveAdr; // 判断7.0android...图片的裁剪和压缩 图片的裁剪 图片的裁剪我们主要看一下starPhotoZoom()这个裁剪方法,代码如下: public void startPhotoZoom(Uri uri) {.../*");//裁剪的图片uri和图片类型 intent.putExtra("crop", "true");//设置允许裁剪,如果不设置,就会跳过裁剪的过程,还可以设置putExtra("...photoBitmap.compress(Bitmap.CompressFormat.JPEG, 100, out); } 4.其他知识点 点击用户头像弹窗不是我们常用的PupUpWindow,而是自定义的...用户头像被我做成了圆角,这个也是自定义ImageView,大家可以下载查看源码。 暂时这么多,以后补充! Github地址

1.3K30
领券