首页
学习
活动
专区
工具
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.4K30
  • 用 Java 做个“你画手机猜”的安卓小游戏

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

    1.7K20

    Android控件之ImageView

    零、前言 1.ImageView地位:直接继承自View,安卓源码1600+,算是个小类,但图片显示基本上都用它 2.scaleType有点小烦,不过看图还是挺清晰的 3.cropToPadding...裁剪类型.gif] fitCenter:按比例扩大或缩小到ImageView的ImageView的高度,居中显示 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.3K30

    3-VIV-Android控件之ImageView

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

    78120

    在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.6K10

    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.9K30

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

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

    12710

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

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

    3.6K70

    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.5K10

    【愚公系列】《AIGC辅助软件开发》031-AI辅助解决各种疑难杂症:警惕小众场景下的误导性回答

    **纹理裁剪(Texture Cropping)** 如果你对纹理进行了裁剪或使用了 `textureFrame` 等操作,纹理坐标会根据裁剪后的区域调整,这会影响 `vTextureCoord.y`...### 结论 `vTextureCoord.y` 的取值范围为 0~0.6 通常是由于纹理只是大纹理集或图像中的一部分,或者你正在使用裁剪或缩放模式。...然而,在测试阶段,我发现部分品牌(如 vivo 和一加)的安卓浏览器中禁止滚动的效果失效了。 为什么 body.style.overflow = 'hidden' 会在部分安卓浏览器中失效?...在部分安卓浏览器中,设置 `body.style.overflow = 'hidden'` 后页面仍然可以滚动,通常是由于浏览器在处理滚动和 `overflow` 属性时的差异化行为。...这个问题在某些老旧版本的安卓浏览器和 WebView 实现中较为常见。

    11300

    鬼都藏不住,人脸识别新突破!就算遮住半张脸也能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

    escrcpy:【技术党必看】Android开发,Escrcpy 让你无线投屏新体验!图形界面掌控 Android,30-120fps 超流畅!

    这使得在控制安卓设备时,操作的连贯性和及时性得到了很好的保障。自动化功能可以自动连接设备、自动执行图像、自定义脚本以及设置定时任务。...在镜像模式下,可以将安卓设备的屏幕镜像到电脑上;录制模式则可以录制安卓设备的屏幕操作过程;OTG模式可以进行相关的OTG设备连接操作;相机模式可以对安卓设备的相机进行控制;自定义模式则可以根据用户自己的需求进行个性化的操作设置...设备交互栏设备交互栏中有很多实用的功能按钮,如切换、主页、返回、通知、电源、旋转、音量、截图、重启、安装APP、文件管理器、执行脚本、定时任务、Gnirehtet等。...视频控制能够对视频相关的参数进行设置,如禁用视频转发、设置最大尺寸、视频比特率、刷新率、视频编解码器、显示方向、屏幕裁剪、监控、视频缓冲区、接收器(v4l2)缓冲区等。...(三)操作问题如果点击数据线连接后的无线模式没有反应,可以再点击一次或者点击刷新设备,一般不会超过两次点击。如果仍然不行,需要提供设备型号和安卓版本到问题反馈区。

    17810

    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.3K10
    领券