Android 自定义View ——Matrix (矩阵)
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 (矩阵)相关推荐
- 【5年Android从零复盘系列之二十】Android自定义View(15):Matrix详解(图文)【转载】
[转载]本文转载自麻花儿wt 的文章<android matrix 最全方法详解与进阶(完整篇)> [5年Android从零复盘系列之二十]Android自定义View(15):Matri ...
- android代码实现手机加速功能,Android自定义View实现内存清理加速球效果
Android自定义View实现内存清理加速球效果 发布时间:2020-09-21 22:21:57 来源:脚本之家 阅读:105 作者:程序员的自我反思 前言 用过猎豹清理大师或者相类似的安全软件, ...
- 一篇文章带你走近Android自定义view
系列文章目录 一篇文章带你走近Android自定义view 文章目录 系列文章目录 前言 一.为什么要自定义view 二.先看看一个超级简单的自定义view(三个构造函数) 三.了解手机的坐标系 四. ...
- Android自定义View(七)_Canvas之图片文字
在上一篇文章Canvas之画布操作中我们了解了画布的一些基本操作方法,本次了解一些绘制图片文字相关的内容.如果你对前几篇文章讲述的内容熟练掌握的话,那么恭喜你,本篇结束之后,大部分的自定义View已经 ...
- Android 自定义view 图片编辑(画圆,画长方形,手势缩放)
Android 自定义view 图片编辑(画圆,画长方形,手势缩放) package com.bridgetek.yqm.view; import android.annotation.Suppres ...
- Android 自定义View 圆形圆角图片
[Android 自定义View 圆形圆角图片] 基于Xfermode 实现 1.概述 在很久以前也写过一个利用Xfermode 实现圆形.圆角图片的(Android 完美实现图片圆角和圆形(对实现进 ...
- android+清除循环动画,android自定义View之(4)-一键清除动画
android自定义View之(四)------一键清除动画 1.前言: 自己也是参考别人的一些自定义view例子,学习了一些基本的自定义view的方法.今天,我参考了一些资料,再结合自已的一些理解, ...
- android自定义View之(四)------一键清除动画
1.前言: 自己也是参考别人的一些自定义view例子,学习了一些基本的自定义view的方法.今天,我参考了一些资料,再结合自已的一些理解,做了一个一键清除的动画.当年,我实现这个是用了几张图片,采用F ...
- Android 自定义view完全解析--带你通透了解自定义view
参考转自郭霖博客带你一步步深入了解View系列 Android LayoutInflater原理分析 相信接触Android久一点的朋友对于LayoutInflater一定不会陌生,都会知道它主要是用 ...
最新文章
- ttf,woff2字体转化为png图片,python读取图片
- java 风袖,仓库 - 高谷深陵 (gaogushenling) - Gitee.com
- 《python 与数据挖掘 》一 1.2 工具简介
- 找不到具有绑定 MetadataExchangeHttpBinding 的终结点的与方案 http 匹配的基址。注册的基址方案是 [https]...
- Apache Avro
- linux系统命令光标移动,Linux 命令行 光标移动技巧及利用grep和find查找文件内容...
- RxPermissions 源码解析之举一反三
- python代码计算字数_Python计算一个文件里字数的方法
- SQL Server之游标
- PyTorch 1.0 中文官方教程:序列模型和LSTM网络
- bzoj1303[CQOI2009]中位数图
- linux终端快捷方式
- 9/24matplotlib使用入门
- CSDN发布:AI技术人才成长路线图
- 你的工具包已到货「GitHub 热点速览 v.22.31」
- 生物信息常用网站(数据库)
- 灵飞经5龙生九子 第二十一章 危机四伏 3
- 蓝牙双模音频模块 BT401蓝牙BLE应用笔记
- c++坦克大战小游戏
- gateway请求就是404 nacos+gateway 搭建网关gateway
热门文章
- Test Reprot
- 2022-2028年中国互联网+不良资产处置行业深度调研及投资前景预测报告
- 2022-2028年中国PE膜产业竞争现状及发展前景分析报告
- 2019秋招面试常考题目
- 百例1-10(一到三章)总结
- 机房收费系统【VB版】——上下机
- intellij idea 常见遇到的问题整理
- ModuleNotFoundError: No module named 'tools.nnwrap' pytorch 安装
- 2021年大数据ELK(二十三):Kibana简介
- excel 解析 java_java解析Excel(xls、xlsx两种格式)