Android学习Matrix对称变换5
网上很多的倒影特效实际上就是一个对称变换,在改变透明度即可。
Matrix对称变换包括很多种,有关于Y轴对称,关于X轴对称,关于y= -x对称等等。
1 关于Y轴对称
- // 获取资源文件的引用res
- Resources res = getResources();
- // 获取图形资源文件
- Bitmap bmp = BitmapFactory.decodeResource(res, R.drawable.v);
- // 设置canvas画布背景为白色
- canvas.drawColor(Color.BLACK);
- // 在画布上绘制缩放之前的位图,以做对比
- //屏幕上的位置坐标是0,0
- canvas.drawBitmap(bmp, 0, 0, null);
- // 定义矩阵对象
- Matrix matrix = new Matrix();
- float[] values ={-1f,0.0f,0.0f,0.0f,1f,0.0f,0.0f,0.0f,1.0f};
- matrix.setValues(values);
- System.out.println("matrix:" + matrix.toString());
- Bitmap dstbmp = Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(), bmp.getHeight(),
- matrix, true);
- canvas.drawBitmap(dstbmp, bmp.getWidth(), 0, null);
屏幕上包括两幅图片,一张原图,一张对称图,来形成对比效应。
2 关于X轴对称
- // 获取资源文件的引用res
- Resources res = getResources();
- // 获取图形资源文件
- Bitmap bmp = BitmapFactory.decodeResource(res, R.drawable.v);
- // 设置canvas画布背景为白色
- canvas.drawColor(Color.BLACK);
- // 在画布上绘制缩放之前的位图,以做对比
- //屏幕上的位置坐标是0,0
- canvas.drawBitmap(bmp, 0, 0, null);
- // 定义矩阵对象
- Matrix matrix = new Matrix();
- float[] values ={1f,0.0f,0.0f,0.0f,-1f,0.0f,0.0f,0.0f,1.0f};
- matrix.setValues(values);
- System.out.println("matrix:" + matrix.toString());
- Bitmap dstbmp = Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(), bmp.getHeight(),
- matrix, true);
- canvas.drawBitmap(dstbmp, 0, bmp.getHeight(), null);
3 关于原点对称
- // 获取资源文件的引用res
- Resources res = getResources();
- // 获取图形资源文件
- Bitmap bmp = BitmapFactory.decodeResource(res, R.drawable.v);
- // 设置canvas画布背景为白色
- canvas.drawColor(Color.BLACK);
- // 在画布上绘制缩放之前的位图,以做对比
- //屏幕上的位置坐标是0,0
- canvas.drawBitmap(bmp, 0, 0, null);
- // 定义矩阵对象
- Matrix matrix = new Matrix();
- float[] values ={-1f,0.0f,0.0f,0.0f,-1f,0.0f,0.0f,0.0f,1.0f};
- matrix.setValues(values);
- System.out.println("matrix:" + matrix.toString());
- Bitmap dstbmp = Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(), bmp.getHeight(),
- matrix, true);
- canvas.drawBitmap(dstbmp, bmp.getWidth(), bmp.getHeight(), null);
4 关于y = x 对称
- // 获取资源文件的引用res
- Resources res = getResources();
- // 获取图形资源文件
- Bitmap bmp = BitmapFactory.decodeResource(res, R.drawable.v);
- // 设置canvas画布背景为白色
- canvas.drawColor(Color.BLACK);
- // 在画布上绘制缩放之前的位图,以做对比
- //屏幕上的位置坐标是0,0
- canvas.drawBitmap(bmp, 0, 0, null);
- // 定义矩阵对象
- Matrix matrix = new Matrix();
- float[] values ={0f,1f,0.0f,1f,0f,0.0f,0.0f,0.0f,1.0f};
- matrix.setValues(values);
- System.out.println("matrix:" + matrix.toString());
- Bitmap dstbmp = Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(), bmp.getHeight(),
- matrix, true);
- canvas.drawBitmap(dstbmp, bmp.getWidth(), bmp.getHeight(), null);
5 关于y = -x对称
- // 获取资源文件的引用res
- Resources res = getResources();
- // 获取图形资源文件
- Bitmap bmp = BitmapFactory.decodeResource(res, R.drawable.v);
- // 设置canvas画布背景为白色
- canvas.drawColor(Color.BLACK);
- // 在画布上绘制缩放之前的位图,以做对比
- //屏幕上的位置坐标是0,0
- canvas.drawBitmap(bmp, bmp.getHeight(), 0, null);
- // 定义矩阵对象
- Matrix matrix = new Matrix();
- float[] values ={0f,-1f,0.0f,-1f,0f,0.0f,0.0f,0.0f,1.0f};
- matrix.setValues(values);
- System.out.println("matrix:" + matrix.toString());
- Bitmap dstbmp = Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(), bmp.getHeight(),
- matrix, true);
- canvas.drawBitmap(dstbmp, 0, bmp.getHeight(), null);
转载于:https://www.cnblogs.com/MMLoveMeMM/articles/4638964.html
Android学习Matrix对称变换5相关推荐
- Android学习笔记进阶九之Matrix对称变换
网上很多的倒影特效实际上就是一个对称变换,在改变透明度即可. Matrix对称变换包括很多种,有关于Y轴对称,关于X轴对称,关于y= -x对称等等. 1 关于Y轴对称 [java] view plai ...
- Android学习路线
Android学习路线 第一阶段:Java面向对象编程 1.Java基本数据类型与表达式,分支循环. 2.String和StringBuffer的使用.正则表达式. 3.面向对象的抽象,封装,继承 ...
- Android笔记——Matrix
转自:http://www.cnblogs.com/qiengo/archive/2012/06/30/2570874.html#translate Matrix的数学原理 在Android中,如果你 ...
- Android学习之PhotoView在Eclipse上的使用
一.今天,来介绍一个开源框架PhotoView,使用十分方便快捷,此框架可以实现以下这些功能: (1).android图片的浏览功能. (2).图片放大缩小功能,可以使用PhotoView双击放大,双 ...
- Pro Android学习笔记(一五五) 传感器(5) 磁场传感器和方位(上)
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 文章转载 ...
- Pro Android学习笔记(一五五):传感器(5): 磁场传感器和方位(上)
文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处http://blog.csdn.net/flowingflying/以及作者@恺风Wei. 磁场传感器(Magne ...
- Android学习博客和文章存档
[Android基础]Android总结篇 http://blog.csdn.net/codeemperor/article/details/51004189 Android最佳性能实践(一)--合理 ...
- Android学习笔记之在图片特效
1.涂鸦(能清屏) HandWritingActivity.java [java] view plaincopy package xiaosi.handWriting; import android. ...
- 一篇文章一张思维导图看懂Android学习最佳路线
一篇文章一张思维导图看懂Android学习最佳路线 先上一张android开发知识点学习路线图思维导图 Android学习路线从4个阶段来对Android的学习过程做一个全面的分析:Android初级 ...
- android:scaleType=matrix布局文件加载图片时候的显示方式
android:scaleType="center" 以原图的几何中心点和ImagView的几何中心点为基准,按图片的原来size居中显示,不缩放,当图片长/宽超过View的长/宽 ...
最新文章
- TypeError: pyqtSignal must be bound to a QObject
- 如何在 Flink 中规划 RocksDB 内存容量?
- 如何用Pygame写游戏(三)
- 腾讯云发布第三代云服务器矩阵,开放更强计算力赋能产业智能化
- 180多个web和desktop测试用例清单
- java动态数组储存敌机_如何使用参数通过graphql将动态数组字符串存储为neo4j中的节点属性?...
- 洛神云网络 SLB 负载均衡新姿势
- Endnotex7无法保存修改后的格式
- 高效办公软件推荐——屏幕录制类
- svn: E230001: Server SSL certificate verification failed: certificate issued for a different hostnam
- Linux SSH 远程登录错误解决办法 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
- 开学季哪些数码产品值得一看?开学季推荐五款值得入手的好物
- android实现定位打卡,基于Android的移动定位课堂考勤系统设计与实现
- 四色定理 - 从时序着色法到四色定理的逻辑证明
- Vue路由传参(params 与 query)
- 一道关于老鼠繁衍的算法题
- c语言银行存取款系统编译,C语言银行存取款管理系统.docx
- Deamon Tools 下载
- 计算机右侧不显示桌面,电脑桌面的右下角不显示移动设备的图标怎么办?
- 拓扑学笔记:定义域的性质之紧性暂记(紧集“有界闭集”的性质)
热门文章
- 如何找回 Mac 上 App 或服务器的密码?
- 如何在Mac上将iCloud照片库备份到Mac硬盘?
- “Hello World!“”团队第七周召开的第二次会议
- 【逐云】阿里“水电煤”背后的人物故事
- 人工智能进场 AR/VR何去何从?
- Java类加载信息的顺序:包括静态代码快、静态类变量、非静态代码快、构造方法、普通方法...
- 妙用TurboMail企业通讯平台,重要邮件不再躲猫猫
- OSPF实验:OSPF认证
- Redis命令 - sortedSet
- CTO 说,再用错@Autowired 和@Resource 就可以领盒饭了