首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

安卓:如何在ImageView旋转后拥有裁剪的图像?

在安卓中,要在ImageView旋转后拥有裁剪的图像,可以通过以下步骤实现:

  1. 首先,使用Matrix类来旋转ImageView中的图像。可以使用setRotate方法设置旋转角度,并使用postRotate方法将旋转应用于图像。
  2. 接下来,创建一个Bitmap对象,将ImageView中的图像转换为Bitmap。可以使用getDrawingCache方法获取ImageView的绘制缓存,并将其转换为Bitmap对象。
  3. 然后,使用Matrix类的mapRect方法来获取旋转后的图像的边界矩形。通过将ImageView的边界矩形映射到旋转后的图像上,可以得到裁剪后的图像的边界矩形。
  4. 使用Bitmap的createBitmap方法,根据裁剪后的图像的边界矩形,创建一个新的Bitmap对象。
  5. 最后,使用Canvas类的drawBitmap方法,将裁剪后的图像绘制到新创建的Bitmap对象上。

以下是一个示例代码,展示了如何在ImageView旋转后拥有裁剪的图像:

代码语言:txt
复制
// 获取ImageView的绘制缓存
imageView.setDrawingCacheEnabled(true);
Bitmap originalBitmap = Bitmap.createBitmap(imageView.getDrawingCache());
imageView.setDrawingCacheEnabled(false);

// 创建旋转矩阵
Matrix matrix = new Matrix();
matrix.setRotate(rotationAngle);

// 旋转图像
Bitmap rotatedBitmap = Bitmap.createBitmap(originalBitmap, 0, 0, originalBitmap.getWidth(), originalBitmap.getHeight(), matrix, true);

// 获取旋转后图像的边界矩形
RectF rectF = new RectF(0, 0, rotatedBitmap.getWidth(), rotatedBitmap.getHeight());
matrix.mapRect(rectF);

// 创建裁剪后的图像
Bitmap croppedBitmap = Bitmap.createBitmap(rotatedBitmap, (int) rectF.left, (int) rectF.top, (int) rectF.width(), (int) rectF.height());

// 将裁剪后的图像显示在ImageView中
imageView.setImageBitmap(croppedBitmap);

这样,你就可以在ImageView旋转后拥有裁剪的图像了。

对于安卓开发中的图像处理,腾讯云提供了一系列的图像处理服务,例如腾讯云的云图像处理(Cloud Image Processing,CI),可以实现图像的裁剪、旋转、缩放等功能。你可以参考腾讯云的云图像处理产品介绍了解更多相关信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

ImageView scaleType 用法实用总结

ImageView scaleType 用法实用总结 如果想快速决定用哪个值好,那直接跳到后面的总结吧。 ImageView 共有7种 scaleType。...与fitCenter区别是centerCrop图片会填充整个区域,所以可能会被裁剪。 (注意这里图片背景为灰色,图片白色部分不属于ImageView,即ImageView已被图片占满。...imageView.setScaleType(ImageView.ScaleType.MATRIX); //设置为矩阵模式 Matrix matrix = new Matrix();...创建一个单位矩阵 matrix.setTranslate(50, 50); //平移x和y各50单位 matrix.preRotate(40); //顺时针旋转...fitCenter) 希望图片占满整个ImageView,并且能够容忍两边被裁剪 用centerCrop 不一定要撑满ImageView 用centerInside 希望按照图片原来大小显示,并且能容忍周围被裁剪

1.1K30
  • 用 Java 做个“你画手机猜”小游戏

    随着算力不断增进,机器学习任务已经可以直接在边缘设备部署,包括各类运行系统智能手机。但是,由于本身主要是用 Java ,部署基于 Python 各类深度学习模型变成了一个难题。...PaintView 是用来让用户画画,在右下角 ImageView 是用来展示用于深度学习推理图像。同时我们预留一个按钮来进行画板清空操作。...3.2 第二步: 应对绘画动作 在设备上,你可以自定义触摸事件响应来应对用户各种触控操作。...3.4 可选优化:输入裁剪 为了得到更高模型推理准确度,你可以通过截取图像来去除无意义边框部分。 ? 上面右侧图片会比左边图片有更好推理结果,因为它所包含空白边框更少。...期待看到你创建第一个 DoodleDraw 游戏! 最后,可以在GitHub找到本教程完整案例代码。

    1.6K20

    Android控件之ImageView

    零、前言 1.ImageView地位:直接继承自View,源码1600+,算是个小类,但图片显示基本上都用它 2.scaleType有点小烦,不过看图还是挺清晰 3.cropToPadding...裁剪类型.gif] fitCenter:按比例扩大或缩小到ImageViewImageView高度,居中显示 fitEnd:按比例扩大(缩小)到ImageView高度,显示在ImageView下部分位置...:不改变原图大小,从ImageView左上角开始绘制,超过ImageView裁剪 二、剪裁:cropToPadding:需要与scrollX或scrollY同用,单独无效 测试时true和false..." 2.代码中设置 Drawable和Bitmap都是中图片显示和处理重要类,以后会详细论述。...2.连接传送门: 更多技术欢迎访问:技术栈 我github地址:欢迎star 简书首发,腾讯云+社区同步更新 张风捷特烈个人网站,编程笔记请访问:http://www.toly1994

    1K00

    【Android从零单排系列九】《Android视图控件——ImageView

    scaleType fitStart:保持宽高比例缩放图片,直到较长边与image边长相等,缩放完成将图片放在ImageView左上角 fitCenter:默认值,同上,缩放后放中间 fitEnd...,超过部分裁剪处理 centerCrop:保持宽高比缩放,直到完全覆盖imageview,可能出现图片显示不完整 centerInside:保持宽高比缩放,知道imageview能完全显示图片 matrix...:不改变原图大小,从imageview左上角开始绘制原图,原图超过imageview部分作裁剪处理 alpha 设置透明度 <ImageView android...他提供了大量配置选项和良好控制图像加载和缓存过程。...1.图片存储在系统匿名共享内存,而不是虚拟机堆内存中,图片中间缓冲数据也存放在本地堆内存,所以,应用程序有更多内存使用,不会因为图片加载而导致oom,同时也减少垃圾回收器频繁回收Bitmap

    1.2K30

    3-VIV-Android控件之ImageView

    零、前言 [1].ImageView地位:直接继承自View,源码1600+,算是个小类,但图片显示基本上都用它 [2].scaleType有点小烦,不过看图还是挺清晰 [3].cropToPadding...ImageView裁剪类型.gif fitCenter:按比例扩大或缩小到ImageViewImageView高度,居中显示 fitEnd:按比例扩大(缩小)到ImageView高度,显示在ImageView...下部分位置 fitStart:按比例扩大(缩小)到ImageView高度,显示在ImageView上部分位置 fitXY:不保持原比例,填满ImageView center:按比例扩大或缩小到ImageView...:不改变原图大小,从ImageView左上角开始绘制,超过ImageView裁剪 二、剪裁:cropToPadding:需要与scrollX或scrollY同用,单独无效 测试时true和false...Drawable和Bitmap都是中图片显示和处理重要类,以后会详细论述。

    76720

    影创SDK☀️三、工程默认配置,及基础测试建议

    但仍需要自己切换到平台。 2️⃣ 关于Dotween SDK集成了Dotween核心组件。...3️⃣ 如何在电脑进行测试 就是我们能不能不用每次打包到眼睛上,可不可以在电脑里测试呢? 若你调用了arr包等内容,想测试相关内容,那得到眼睛上测试。...若你想测试其他逻辑,可直接在电脑上进行: 在编辑器模式下使用键盘模拟 XR 设备中行为 如何在场景中移动和旋转视角: 长按按键W/A/S/D 可向前/向左/向后/向右移动视角 长按鼠标右键,并移动鼠标旋转视角...,但每次先装到手机上,再去手机点开应用测试,也比较麻烦 那有没有一个在电脑上就能控制设备方法呢?...有的,给大家分享一个软件:ARDC 下载位置:传送门 它功能有: 投屏、 在电脑上可操作手机上应用、 拖拽安装apk...

    11010

    在Android实现双目测距

    通过本教程,你不仅掌握如何在Android中使用SBM等双目测距算法,顺便也了解到如何在Android Studio配置OpenCV,通过使用OpenCV可以在Android中实现很多图像处理功能。...,会对图像进行裁剪,这里validROI就是指裁剪之后区域 Calib3d.stereoRectify(cameraMatrixL, distCoeffL, cameraMatrixR...计算完成之后,为了方便查看图像距离,把结果图在ImageView上显示,然后为ImageView添加点击获取坐标事件。...创建一个新Activity,命名为CameraActivity,按照通常调用摄像头方式,这样获取到图像是左右目摄像头拍摄图片拼接在一起并且旋转,我们需要是把他们旋转回来并把他们裁剪分割,...,使用StereoBMUtil工具类读取分割左右目摄像头图像执行计算,把结果图在ImageView上显示,然后为ImageView添加点击获取坐标事件。

    1.1K20

    在Android实现双目测距

    通过本教程,你不仅掌握如何在Android中使用SBM等双目测距算法,顺便也了解到如何在Android Studio配置OpenCV,通过使用OpenCV可以在Android中实现很多图像处理功能。...,会对图像进行裁剪,这里validROI就是指裁剪之后区域 Calib3d.stereoRectify(cameraMatrixL, distCoeffL, cameraMatrixR...计算完成之后,为了方便查看图像距离,把结果图在ImageView上显示,然后为ImageView添加点击获取坐标事件。...创建一个新Activity,命名为CameraActivity,按照通常调用摄像头方式,这样获取到图像是左右目摄像头拍摄图片拼接在一起并且旋转,我们需要是把他们旋转回来并把他们裁剪分割,...,使用StereoBMUtil工具类读取分割左右目摄像头图像执行计算,把结果图在ImageView上显示,然后为ImageView添加点击获取坐标事件。

    2.5K10

    Android图片开源库:最全面、详细Picasso讲解

    .with(context) //load(String imageUrl):被加载图像Url地址。...) .load(url) //裁剪图片尺寸 .resize(50, 50) //设置图片圆角 .centerCrop() .into(imageView) 2.2.3 加载过重 & 错误处理...特点 4.1 优点 使用简单、方便(一行代码事情) 由于同样是出品自Square,Square 公司其他开源库 Retrofit 或者 OkHttp和Picasso搭配使用兼容性会更好些,占用体积也会少些...所以,如果项目已经使用了 Square 公司其他开源库( Retrofit 或者 OkHttp),在满足需求前提下建议使用Picasso 4.2 缺点 功能较为简单-图片加载; 性能(...相信你看完这篇文章你能全面掌握Picasso用法 但是Picasso源码却不简单,接下来我会对Picasso源码进行详细分析,如果感兴趣的话可以继续关注Carson_Ho开发笔记!!!!

    1.8K30

    一种android中实现“圆角矩形”方法

    思路是利用“Xfermode + Path”来进行Bitmap裁剪。 背景 圆角矩形实现方法应该很多,网上一大堆。很怀疑为啥控件不内置这样属性(我不知道有)?...clip**系列方法就是对画布进行裁剪,之后绘制(“可以简单地”认为之前通过canvas绘制已经固定在画布对应存储图像bitmap上了)都在裁剪区域中进行 使用clipPath()实现圆角矩形完整代码如下...,这样就保证了绘制内容范围限制在裁剪“圆角矩形画布”中。...上面的代码有一个“模板”:匹配saveLayer()和restoreToCount()调用。 canvas拥有layer概念,canvas默认拥有一个初始layer。...得到Dst Image 本身要绘制图像就是Dst Image,在ImageViewonDraw方法中,super.onDraw(canvas)会将需要绘制内容绘制到传递canvas中,这里为了得到对应

    3.5K70

    Android图片加载库:最全面解析Glide用法

    (this).load(imageUrl).diskCacheStrategy(DiskCacheStrategy.ALL).into(imageView); //缓存参数 //ALL:缓存源资源和转换资源...//在我们上面略缩图例子中,将会只有一个1000x1000 像素图片 //RESULT:缓存转换资源(最终图像,即降低分辨率(或者是转换) 设置跳过内存缓存 Glide .with...这个改进就会导致 Glide 比 Picasso 加载速度要快,毕竟少了每次裁剪重新渲染过程,非常灵活 & 加载速度快 C....应用场景 根据Glide特点和与其他图片加载库对比,可以得出其使用场景: 需要更多内容表现形式(Gif); 更高性能要求(缓存 & 加载速度); 7....相信你看完这篇文章你能全面掌握Glide用法 但是Glide源码却不简单,接下来我会对Glide源码进行详细分析,如果感兴趣的话可以继续关注Carson_Ho开发笔记!!!!

    3.3K10

    鬼都藏不住,人脸识别新突破!就算遮住半张脸也能100%被识别

    然而,与此相反,任何在光线、表情、姿势和即眼镜或胡子等等变化,都可能对计算机识别率产生巨大影响。...示例图片 识别过程 使用CNN和VGG-Face,利用两个分类器进行不完整人脸识别 团队主要研究面部不同部分如何有利于识别,以及在机器学习场景中如何在对面部照片进行不同程度旋转、缩放识别。...使用级联物体检测器对两个数据库中所有图像进行裁剪以尽可能地去除背景,以便提取面部和内部面部特征。但是,对于某些具有非常复杂背景图像LFW数据库情况,作者手动裁剪这些面部。...(10°到180°) 在FEI数据集上使用SVM和CS分类器的人脸识别率(基于训练集中没有和有旋转人脸图片) 一个在FEI数据集中缩小(10%到90%)人脸例子 利用SVM和CS分类器对FEI中缩小的人脸进行快速识别...,这为该技术应用于防或预防犯罪等方面,开辟了更大可能性。”

    1.1K20

    好照片:最好照片处理软件

    一键增强:傻瓜式一键操作即可对图片曝光度,细节,对比度,亮度等诸多图像特征进行完美升华。 特效&边框:70余种专业摄影师推荐特效,超过20种精致边框。...调整&裁剪裁剪旋转、亮度调整、对比度调整、饱和度调整、清晰度调整、暗角调整、色温/色调调整、高光/低光调整等功能为您提供最完善图像处理工具。...局部上色:在一张灰调图片上让色彩成为了视觉焦点,局部上色功能为您轻松搞定。...更重要是好照片是个全平台照片处理软件: 好照片 iPhone 版 好照片版 好照片 Mac 版 好照片 Windows 版 好照片在线网页版 如果你不想使用 Photoshop 这么复杂软件对照片进行处理...,而只想找个简单软件处理照片的话,那么好照片绝对是最好选择。

    5.3K10

    Android样式开发:drawable汇总篇

    ,着色可以变成白色 android:tileMode 设置图片平铺方式,取值为下面四种之一: disable 不做任何平铺,默认设置 repeat 图片重复铺满 mirror 使用交替镜像方式重复图片绘制...,图片与屏幕像素配置不同时会用到,比如图片是ARGB 8888,而屏幕是RGB565 android:tint 给图片着色,比如图片本来是黑色,着色可以变成白色 android:tintMode...前一种通过@drawable/white引用,一种通过@color/white引用。...浮点数表示相对于drawable左边缘距离单位为px,5; 百分比表示相对于drawable左边缘距离按百分比计算,5%; 另一种百分比表示相对于父容器左边缘,5%p; 一般设置为50%表示在...旋转中心X坐标 android:pivotY 旋转中心Y坐标 android:visible 设置初始可见性状态,默认为false 示例代码: <?

    2.2K10

    飞桨手势识别带你玩转神庙逃亡

    拍照方法实现 Android Camera是系统提供实现自定义相机功能官方支持库,采集模块封装了一系列相关调用方法,实现了连续抓拍存储及浮窗实时预览效果。...此外,对于没有自带摄像头设备(嵌入式开发板),我们使用外接USB摄像头,并完成 USB摄像头驱动模块编写,实现了设备对外接摄像头调用及相关配置功能。 2....增广方式有:0.8~0.9倍随机裁剪、以图片中心为旋转中心±10°随机旋转。 此外,还通过padding方式将图片调整为方形,以保持原始手势及背景长宽比。...数据集增广、预处理示意图(左:padding原图为方形,中:随机裁剪,右:随机旋转) 3....02 平板电脑端神庙逃亡游戏 03 嵌入式板+电视投屏端神庙逃亡游戏 总结 我们手势识别交互系统是面向人机交互嵌入式应用程序,用户仅需使用带有摄像头设备便可以利用手势实现对界面(游戏)控制。

    1.5K30
    领券