Matrix的作用:

Matrix类包含一个3x3矩阵,用于转换坐标

Matrix (矩阵) 的原理很遗憾自己目前也是含糊的很,这里就不说了,记录自己在项目使用的方法,

这里就简单的记录下Matrix (矩阵)包含的几个方法,

Matrix (矩阵)主要可以对图像做4种基本变换

(1)Translate 平移变换

(2)Rotate 旋转变换

(3)Scale 缩放变换

(4)Skew 错切变换

1 Translate 平移变换

  Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.girl);// 矩阵Matrix matrix = new Matrix();// 为了对了平移的效果,这个是原始的图片canvas.drawBitmap(bitmap, matrix, paint);// setTranslate 平移matrix.setTranslate(bitmap.getHeight(), bitmap.getWidth());// 这个是平移后的图片canvas.drawBitmap(bitmap, matrix, paint);

效果图:

2  Rotate 旋转变换

  Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.girl);// 矩阵Matrix matrix = new Matrix();// 为了对了平移的效果,这个是原始的图片canvas.drawBitmap(bitmap, matrix, paint);// setRotate 旋转matrix.setRotate(30f);// 这个是平移后的图片canvas.drawBitmap(bitmap, matrix, paint);

效果图

3  Scale 缩放变换

  Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.girl);// 矩阵Matrix matrix = new Matrix();// 为了对了平移的效果,这个是原始的图片canvas.drawBitmap(bitmap, matrix, paint);// 向下平移一定的距离canvas.translate(0, bitmap.getHeight() + 100);// setRotate 旋转matrix.setScale(1.2f, 1.2f);// 这个是平移后的图片canvas.drawBitmap(bitmap, matrix, paint);

效果图:

4  Skew 错切变换

 Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.girl);// 矩阵Matrix matrix = new Matrix();// 为了对了平移的效果,这个是原始的图片canvas.drawBitmap(bitmap, matrix, paint);// 向下平移一定的距离canvas.translate(0, bitmap.getHeight() + 100);// setSkew 错切变换matrix.setSkew(0.25f, 0.25f);// 这个是平移后的图片canvas.drawBitmap(bitmap, matrix, paint);

效果图

Matrix (矩阵) 有一个让人头疼的点就是pre 和 post 比如

下面的

matrix.setScale(1.2f, 1.2f);
matrix.postScale(1.2f, 1.2f);
matrix.preScale(1.2f, 1.2f);

这三个如果单独写吧效果是相同的,但是他们的调用的方法是不相同的,再往下就不让看源码了,很多文章写的也是很难理解

下面是源码里面方法的注释,这个公式我没看明白不过顺序是不一样的,下面列出来

setScale :将矩阵设置为按sx和sy缩放。

postScale:用指定的刻度对矩阵进行后置处理。M'=S(sx,sy)*M

preScale:用指定的比例预先计算矩阵。M’=M*S(sx,sy)

  

Android 自定义View ——Matrix (矩阵)相关推荐

  1. 【5年Android从零复盘系列之二十】Android自定义View(15):Matrix详解(图文)【转载】

    [转载]本文转载自麻花儿wt 的文章<android matrix 最全方法详解与进阶(完整篇)> [5年Android从零复盘系列之二十]Android自定义View(15):Matri ...

  2. android代码实现手机加速功能,Android自定义View实现内存清理加速球效果

    Android自定义View实现内存清理加速球效果 发布时间:2020-09-21 22:21:57 来源:脚本之家 阅读:105 作者:程序员的自我反思 前言 用过猎豹清理大师或者相类似的安全软件, ...

  3. 一篇文章带你走近Android自定义view

    系列文章目录 一篇文章带你走近Android自定义view 文章目录 系列文章目录 前言 一.为什么要自定义view 二.先看看一个超级简单的自定义view(三个构造函数) 三.了解手机的坐标系 四. ...

  4. Android自定义View(七)_Canvas之图片文字

    在上一篇文章Canvas之画布操作中我们了解了画布的一些基本操作方法,本次了解一些绘制图片文字相关的内容.如果你对前几篇文章讲述的内容熟练掌握的话,那么恭喜你,本篇结束之后,大部分的自定义View已经 ...

  5. Android 自定义view 图片编辑(画圆,画长方形,手势缩放)

    Android 自定义view 图片编辑(画圆,画长方形,手势缩放) package com.bridgetek.yqm.view; import android.annotation.Suppres ...

  6. Android 自定义View 圆形圆角图片

    [Android 自定义View 圆形圆角图片] 基于Xfermode 实现 1.概述 在很久以前也写过一个利用Xfermode 实现圆形.圆角图片的(Android 完美实现图片圆角和圆形(对实现进 ...

  7. android+清除循环动画,android自定义View之(4)-一键清除动画

    android自定义View之(四)------一键清除动画 1.前言: 自己也是参考别人的一些自定义view例子,学习了一些基本的自定义view的方法.今天,我参考了一些资料,再结合自已的一些理解, ...

  8. android自定义View之(四)------一键清除动画

    1.前言: 自己也是参考别人的一些自定义view例子,学习了一些基本的自定义view的方法.今天,我参考了一些资料,再结合自已的一些理解,做了一个一键清除的动画.当年,我实现这个是用了几张图片,采用F ...

  9. Android 自定义view完全解析--带你通透了解自定义view

    参考转自郭霖博客带你一步步深入了解View系列 Android LayoutInflater原理分析 相信接触Android久一点的朋友对于LayoutInflater一定不会陌生,都会知道它主要是用 ...

最新文章

  1. ttf,woff2字体转化为png图片,python读取图片
  2. java 风袖,仓库 - 高谷深陵 (gaogushenling) - Gitee.com
  3. 《python 与数据挖掘 》一 1.2 工具简介
  4. 找不到具有绑定 MetadataExchangeHttpBinding 的终结点的与方案 http 匹配的基址。注册的基址方案是 [https]...
  5. Apache Avro
  6. linux系统命令光标移动,Linux 命令行 光标移动技巧及利用grep和find查找文件内容...
  7. RxPermissions 源码解析之举一反三
  8. python代码计算字数_Python计算一个文件里字数的方法
  9. SQL Server之游标
  10. PyTorch 1.0 中文官方教程:序列模型和LSTM网络
  11. bzoj1303[CQOI2009]中位数图
  12. linux终端快捷方式
  13. 9/24matplotlib使用入门
  14. CSDN发布:AI技术人才成长路线图
  15. 你的工具包已到货「GitHub 热点速览 v.22.31」
  16. 生物信息常用网站(数据库)
  17. 灵飞经5龙生九子 第二十一章 危机四伏 3
  18. 蓝牙双模音频模块 BT401蓝牙BLE应用笔记
  19. c++坦克大战小游戏
  20. gateway请求就是404 nacos+gateway 搭建网关gateway

热门文章

  1. Test Reprot
  2. 2022-2028年中国互联网+不良资产处置行业深度调研及投资前景预测报告
  3. 2022-2028年中国PE膜产业竞争现状及发展前景分析报告
  4. 2019秋招面试常考题目
  5. 百例1-10(一到三章)总结
  6. 机房收费系统【VB版】——上下机
  7. intellij idea 常见遇到的问题整理
  8. ModuleNotFoundError: No module named 'tools.nnwrap' pytorch 安装
  9. 2021年大数据ELK(二十三):Kibana简介
  10. excel 解析 java_java解析Excel(xls、xlsx两种格式)