没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
最近在使用Matrix进行绘图的操作。对Matrix的一些方法有了一些更深的体会,记下来,以便日后复习。 Matrix常用的方法: 一、变换方法: Matrix提供了translate(平移)、rotate(旋转)、scale(缩放)、skew(倾斜)四种操作,这四种操作的内部实现过程都是通过matrix.setValues(…)来设置矩阵的值来达到变换图片的效果。 Matrix的每种操作都有set、pre、post三种操作,set是清空队列再添加,pre是在队列最前面插入,post是在队列最后面插入。 pre方法表示矩阵前乘,例如:变换矩阵为A,原始矩阵为B,pre方法的含义即是A*B po
资源推荐
资源详情
资源评论































Android中使用中使用Matrix控制图形变换和制作倒影效果的方法控制图形变换和制作倒影效果的方法
最近在使用Matrix进行绘图的操作。对Matrix的一些方法有了一些更深的体会,记下来,以便日后复习。
Matrix常用的方法:
一、变换方法:一、变换方法:
Matrix提供了translate(平移)、rotate(旋转)、scale(缩放)、skew(倾斜)四种操作,这四种操作的内部实现过程都是通过
matrix.setValues(…)来设置矩阵的值来达到变换图片的效果。
Matrix的每种操作都有set、pre、post三种操作,set是清空队列再添加,pre是在队列最前面插入,post是在队列最后面插入。
pre方法表示矩阵前乘,例如:变换矩阵为A,原始矩阵为B,pre方法的含义即是A*B
post方法表示矩阵后乘,例如:变换矩阵为A,原始矩阵为B,post方法的含义即是B*A
1.matrix.preScale(0.5f, 1);
2.matrix.preTranslate(10, 0);
3.matrix.postScale(0.7f, 1);
4.matrix.postTranslate(15, 0);
等价于:
translate(10, 0) -> scale(0.5f, 1) -> scale(0.7f, 1) -> translate(15, 0)
注意:后调用的pre操作先执行,而后调用的post操作则后执行。
set方法一旦调用即会清空之前matrix中的所有变换,例如:
1.matrix.preScale(0.5f, 1);
2.matrix.setScale(1, 0.6f);
3.matrix.postScale(0.7f, 1);
4.matrix.preTranslate(15, 0);
等价于
translate(15, 0) -> scale(1, 0.6f) -> scale(0.7f, 1)
matrix.preScale (0.5f, 1)将不起作用。
二、映射方法二、映射方法
Matrix提供了mapXXX的方法,用于获取经matrix映射之后的值。主要有:mapPoints,mapRects,mapVectors等方法。
这些方法你会使用到:在你需要记住matrix操作之后的数值的时候。比如:记住矩形旋转34°(rotate)之后四个点的坐标。
(你可以尝试着自己计算,你会发现很复杂,还不精确)
需要注意的是,matrix的某些方法使用到中心点的时候,如果不设置,默认是以(0,0)为中心点的。
记下来,以免忘记。
三、制作倒影效果三、制作倒影效果
利用matrix可以实现各种图片的特效,接下来就用marix加上渐变色实现图片倒影的效果,步骤如下:
1. 获取需要倒影效果的图片,这里取原图片的一半
2. 添加颜色渐变到倒影图片上
具体的实现如下面代码所述,我们以一种自定义view的形式给出效果图,代码如下:
package com.flection.view;
import com.flection.main.R;
import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.LinearGradient;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.PorterDuffXfermode;
import android.graphics.Shader.TileMode;
import android.graphics.drawable.BitmapDrawable;
import android.util.AttributeSet;
import android.view.View;
public class FlectionView extends View {
资源评论


weixin_38547035
- 粉丝: 3
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 基于组态王和S7-200 PLC的六层电梯控制:带解释的梯形图程序、接线图原理图、IO分配及组态画面 梯形图
- OpenCV4.12.0适配vs2022
- BA楼宇空调自控图库大全——1100+张PNG&GIF图形元素助力组态软件与触摸屏UI设计
- Abaqus批量建立多种弹簧及在轨道交通车轨耦合中的应用
- ylxma-network-security-19972-1755774159278.zip
- FFT IP RTL实现:基于Cordic算法的Radix-24结构,支持配置计算点数
- 三电平NPC-SPWM仿真:适合新手的入门指南 详细版
- 锂电池SOC估算:扩展卡尔曼滤波器(EKF)的应用 · 模型预测控制 v3.0
- YOLOv8 入门级代码示例:训练与预测(含目标检测、实例分割、关键点检测等)
- 基于人工神经网络的电-气耦合系统快速经济调度的数据驱动方法及其应用
- 三菱PLC与组态王在矿井排水系统中的自动化控制应用 梯形图编程
- 目标检测yolov4 + 跟踪sort
- 基于IndexedDB实现CSV数据本地存储与动态过滤的单页面应用原型-支持CSV导入与表格数据管理-侧边栏与表格自动刷新功能-适用于数据可视化与交互式分析的轻量级Web工具-技术.zip
- S7-1200 PLC与V20变频器USS通讯:读电流电压轮训及写入加速时间的实际案例解析 PLC编程 经典版
- 基于叠加零序电流与注意力学习的配电网故障馈线智能检测技术研究
- Python开发之Conda与Pycharm下载安装指南
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
