Android零点一度的区别——Matrix
2013-07-07
导语:Matrix是android中对图像绘制的处理(旋转、放缩、平移等等),貌似书本翻页就是用这种方式处理的
正文:
1、基于坐标(px,py)旋转degrees度, postRotate(float degrees, float px, float py)
2、基于坐标(px,py)进行按照(sx,sy)比例进行放缩, postScale(float sx, float sy, float px, float py)
====
以上两种方法都正常,但是当两者一起用的时候,在degrees为180度的时候,就有问题了。图像不能旋转180度了,反而是没有旋转的状态。
postRotate(180f, w/2, h/2);
postScale(0.48f, 0.48f, w/2, h/2);
Matrix: 180: Matrix{[-0.48, -0.0, 480.0][0.0, -0.48, 561.0][0.0, 0.0, 1.0]}
====
最后用了笨方法,用了180.1度就OK了,大学的线性代数也忘了差不多了,懒得去研究了。
postRotate(180.1f, w/2, h/2);
postScale(0.48f, 0.48f, w/2, h/2);
Matrix: 180.1f : {[-0.47999924, 8.3774904E-4, 479.68542][-8.3774904E-4, -0.47999924, 561.4186][0.0, 0.0, 1.0]}
以上!
结尾: 1)坚持写写博客
2)继续学习开发
3)我是IT程序猿
Android零点一度的区别——Matrix的更多相关文章
- android:id="@+id/button1" 与 android:id="@id/button1" 区别 @string
一.android:id="@+id/button1" 与 android:id="@id/button1" 区别 android:id="@+id/ ...
- Android @id和@+id区别
Android中的组件需要用一个int类型的id属性值来表示.id属性只能接受资源类型的值,也就是必须以@开头的值,例如,@id/abc.@+id/xyz等.如果在@后面使用“+”,表示当修改完某个布 ...
- android.support.v4.app.Fragment vs android.app.Fragment 的区别
android.support.v4.app.Fragment vs android.app.Fragment 的区别 我开过平板相关应用,用了Fragment来处理.后来重新开发另外一个应用,直接引 ...
- 经典软件测试面试题目:Android 和 ios 测试区别?这样回答:稳!
Android 和 ios 测试区别? App 测试中 ios 和 Android 有哪些区别呢?1.Android 长按 home 键呼出应用列表和切换应用,然后右滑则终止应用:2.多分辨率测试, ...
- Android 中的图像特效(Matrix)
以前在线性代数中学习了矩阵,对矩阵的基本运算有一些了解,现在在Android中有一个Matrix类,它的中文意思就是矩阵.Matrix主要是用于图像的缩放.平移.旋转.扭曲等操作.图像处理,主要用到的 ...
- android 矩阵处理类:Matrix
在Android中,对图片的处理需要使用到Matrix类,Matrix是一个3 x 3的矩阵,他对图片的处理分为四个基本类型: 1.Translate 2.Scale 3.Rotate 4.Skew ...
- android Thread和Runable区别,精讲(有疑问)
网上总是说Runable和Thread可以实现线程,这导致我对Thread和Runable有错误的理解,谁让当时不求甚解,让我一直以为实现Runable可以开启线程. 看过源码后进行区分这两者. 无论 ...
- 【Android 界面效果41】Matrix 与 ColorMatrix
Matrix: 简单用法就是直接使用它的setXX()方法 而高级一点来理解他就是去理解一个线性矩形 首先我们来认识线性矩形:(用画图粗略地画不要见怪) 分析: 那还有一组 MRERSP_0 MRER ...
- 【转】Android onTouch()和onTouchEvent()区别
1.onTouch()方法: onTouch方式是View的OnTouchListener接口中定义的方法. 当一个View绑定了OnTouchListener后,当有Touch事件触发时,就会调用o ...
随机推荐
- Android Studio非gradleproject编译后的apk文件在哪?
非gradle的apk文件位置和gradle有一些差别,怎样找到apk文件在哪?我直接上图吧,选中project,右键: 在windows是选择"show in exlporer" ...
- Nagios监控lvs服务
1在lvs server上安装nrpe客户端: 1.1,rpm方式安装nrpe客户端 下载地址:http://download.csdn.net/detail/mchdba/7493875 [root ...
- 一张地图,告诉你NodeJS命令行调试器语句
NodeJS提供脚本调试. 进入node debug xx.js您可以进入调试模式. 版权声明:本文博客原创文章,博客,未经同意,不得转载.
- erlang mnesia数据库简单应用
mnesia是erlang自带的分布式数据库,基于ets和dets实现的.mnesia兼顾了dets的持久性和ets的高性能,可以自动在多个erlang节点间同步数据库.最关键的是,mnesia实现了 ...
- 怎样使用万用表来测试板子上的TX和RX引脚
最近在看openwrt时看到的一个方法,直接看下面写的: 文章来自:http://wiki.openwrt.org/doc/hardware/port.serial 经实际测试时发现,将万用表的负表笔 ...
- 学习html5的WebSocket连接
1.什么是WebSocket WebSocket 是一种自然的全双工.双向.单套接字连接.使用WebSocket,你的HTTP 请求变成打开WebSocket 连接(WebSocket 或者WebSo ...
- VS2010新建Web网站与新建Web应用程序的区别
在Visual Studio 2010中,除了可以使用“创建Web应用程序”的方式来构建自己的Web项目之外,还可以通过创建“Web网站”的方式来构建Web项其中,Web网站的创建方法:打开Visua ...
- 【转】【Android UI设计与开发】第07期:底部菜单栏(二)Fragment的详细介绍和使用方法
原始地址:http://blog.csdn.net/yangyu20121224/article/category/1431917/1 由于TabActivity在Android4.0以后已经被完全弃 ...
- ODBC操作excel
//ODBC连接Excel public static void main(String[] args) { Connection conn = null; Statement stm = nul ...
- Linux : fedora 安装 vnc server
Linux配置VNC服务 安装VNC服务端 #yum install vnc-server 配置VNC服务参数文件 编辑vncservers文件追加如下 #vi /etc/sysconfig/vncs ...