图像的旋转有很多方法,除了常见的使用动画和矩阵,还可以通过操作背景画布本身来旋转

现将正常的图像绘制到画布中,保存一次画布后整体旋转,然后再恢复画布,此时的图像便得到了旋转的效果,google 官方也推荐使用这种方式来旋转图像,效率也高于矩阵旋转,而且相比之下,画布的旋转不容易失真,这一点是非常重要的。

附上实例代码:

// [Neo] 将需要的图像绘制到画布上面

canvas.drawBitmap(picture, 0, 0, null);

// [Neo] 保存一下当前画布,很重要哦

canvas.save();

// [Neo] 旋转 angle 度,起始座标为 0, 0

canvas.rotato(angle, 0, 0);

// [Neo] TODO 做些你需要的其他操作

// ...

// [Neo] 恢复画布

canvas.restore();

若不是在派生的 View 类重写的 onDraw 方法来修改画布的话,其实还可以通过代码直接绘制一个bitmap对象,可参考:

// [Neo] 创建一个空白的 Bitmap,需要指定长和宽哦

Bitmap bitmap = Bitmap.createBitmap(width, height,

rawable.getOpacity() != PixelFormat.OPAQUE ?

Bitmap.Config.ARGB_8888 : Bitmap.Config.RGB_565);

// [Neo] 直接拿上面的 Bitmap 作为画布的原材料

Canvas canvas = new Canvas(bitmap);

// [Neo] 然后在画布上面绘制你需要的东东,如果需要旋转,可套用上面的方法

// [Neo] ...

// [Neo] 最后拿着 bitmap 去填充控件就是啦,比如 ImageView

imageView.setImageBitmap(bitmap);

祝好,

斑驳敬上

android 画布旋转,Android-在安卓开发中,如何实现一个简单的图片旋转相关推荐

  1. Android Studio安卓开发中使用json来作为网络数据传输格式

    如果你是在安卓开发中并且使用android studio,要使用json来作为数据传输的格式,那么下面是我的一些经验. 一开始我在android studio中导入那6个包,那6个包找了非常久,因为放 ...

  2. Android安卓开发中图片缩放讲解

    安卓开发中应用到图片的处理时候,我们通常会怎么缩放操作呢,来看下面的两种做法: 方法1:按固定比例进行缩放 在开发一些软件,如新闻客户端,很多时候要显示图片的缩略图,由于手机屏幕限制,一般情况下,我们 ...

  3. Qt | Qt For Android、Qt5.14.2安卓开发环境搭建详细步骤

    Qt | Qt For Android.Qt5.14.2安卓开发环境搭建详细步骤 目录 Qt | Qt For Android.Qt5.14.2安卓开发环境搭建详细步骤 1.简介 2.软件下载 1.J ...

  4. android 最新 九宫格,Android开发中怎么显示一个九宫格图片

    Android开发中怎么显示一个九宫格图片 发布时间:2020-11-21 15:09:33 来源:亿速云 阅读:86 作者:Leah 本篇文章给大家分享的是有关Android开发中怎么显示一个九宫格 ...

  5. Android事件分发机制在实战开发中的应用之一

    学习的最终目标就是要学以致用,本文所分享的案例都是自己在公司实战开发过程中的真实案例,现在把它分享出来,希望对初学者有所帮助 版权声明:本文来自门心叼龙的博客,属于原创内容,转载请注明出处:https ...

  6. Android事件分发机制在实战开发中的应用之二

    学习的最终目标就是要学以致用,本文所分享的案例都是自己在公司实战开发过程中的真实案例,现在把它分享出来,希望对初学者有所帮助 版权声明:本文来自门心叼龙的博客,属于原创内容,转载请注明出处:https ...

  7. android 字体倒影,Android开发中怎么实现一个文字倒影效果

    Android开发中怎么实现一个文字倒影效果 发布时间:2020-11-25 17:18:19 来源:亿速云 阅读:140 作者:Leah 这期内容当中小编将会给大家带来有关Android开发中怎么实 ...

  8. 安卓开发中非常炫的效果集合

    安卓开发中非常炫的效果集合 这几天开发的时候,想做一些好看而且酷炫的特效,于是又开始从网上收集各种特效资源.下面给大家一些我喜欢的把,附代码,喜欢的看源代码,然后加到自己项目去把!! 一个开源项目网站 ...

  9. 安卓开发中的USB转串口通讯

    安卓开发中的USB转串口通讯 本文使用GitHub上开源的"hoho.android.usbserial"USB串口库.该库基于"Android USB Host API ...

最新文章

  1. ptam tracking
  2. 我的代码为什么看起来像shit?
  3. Mybatis invalid comparison: java.util.Date and java.lang.String
  4. 《终身成长》读书笔记(part7)--社会互动是用来学习和享受的,而不是用来评判别人的
  5. java传递实例_Java方法的参数传递机制实例详解
  6. JavaScript验证正则表达式大全
  7. dreamweaver 正则表达式为属性值加上双引号_「前端篇」不再为正则烦恼
  8. 实战:从Mysql数据库frm文件中,提取表结构创建SQL语句
  9. html中图片动态效果代码,动态网页设计代码 网页制作动态图片效果源代码
  10. iOS16 系统更新教程,测试版描述文件下载
  11. MySQL业务账号需要哪些权限_MySQL 日常运维业务账号权限的控制
  12. 分子力学无法模拟化学键的断裂的原因
  13. 2022春招——芯动科技FPGA岗技术面(一面心得)
  14. “人工智能”•从入门到入土 –导言
  15. OGG12.1(LINUX) for 11G R2 RAC classical install 经典抽取模式单项同步配置OGG12.1
  16. java 二元组_java里有类似于二元组之类的数据结构么?
  17. 导入Excle数据至数据库 “外部表不是预期的格式”错误信息
  18. 视频剪辑怎么自学?其实剪辑很简单
  19. 保险公司如何为数字化转型做准备
  20. 电脑桌面便签提醒事项到期后怎么清除时间设置?

热门文章

  1. android自定义控件中文乱码,Android笔记--自定义View之组合控件
  2. 数据库系统概论:第九章 关系查询和关系优化
  3. 怎么实现事务_你可能知道事务的四大特性,但是不一定知道“事务的实现原理”...
  4. idea lombok安装后还是标红_小辣椒神器Lombok
  5. 吉大19秋学期计算机应用基础在线作业,吉大16秋学期《计算机应用基础》在线作业一答案...
  6. /proc/sysrq-trigger使用说明
  7. 树莓派+百度api实现人脸识别
  8. 谈大数据里各子项目搭建时的环境变量配置(深入)
  9. 实验三_166_张珍珍
  10. SpringMVC:学习笔记(10)——整合Ckeditor且实现图片上传