android 图片旋转实现的两种方法的比较
来源:互联网 发布:双色球随机选号软件 编辑:程序博客网 时间:2024/05/20 11:27
转载请标明出处:http://blog.csdn.net/nmyangmo/article/details/73506752
图片旋转的方法有两种(旋转ImageView所在布局暂不考虑),这两种分别是动画和使用Matrix(齐次变换矩阵)。
我们想要达到的目标是旋转长图(非正方形),甚至长宽比例很夸张那种。想达到的效果是以图片中心为原点旋转,旋转过程中不失真,不缺失。
首先先看一下动画的效果
Animation rotateAnimation = new RotateAnimation(0f, getRoll(i), Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);rotateAnimation.setFillAfter(true);rotateAnimation.setDuration(0);rotateAnimation.setRepeatCount(0);rotateAnimation.setInterpolator(new LinearInterpolator());rotateAnimation.setDetachWallpaper(true);photoView.startAnimation(rotateAnimation);
效果图:
然后我们再看一下Matrix的方法旋转
Matrix matrix = new Matrix(); //旋转图片 动作matrix.setRotate(getRoll(i));//旋转角度width = bitmap.getWidth();height = bitmap.getHeight(); // 创建新的图片Bitmap resizedBitmap = Bitmap.createBitmap(bitmap, 0, 0, width, height, matrix, true);BitmapDrawable bitmapDrawable = new BitmapDrawable(resizedBitmap);imageView.setImageDrawable(bitmapDrawable);
效果图:
两种方法的对比:
性能方面:动画的方式不用操作一个bitmap和生bitmap对象,性能比较好
效果:采用动画的方式长图在旋转过程中会出现缺失,而Matrix不会
总结:如果图片是正方形选择动画的实现方式,如果是长方形且不允许缺失则选择Matrix
转载请标明出处:http://blog.csdn.net/nmyangmo/article/details/73506752
Demo下载地址:http://download.csdn.net/detail/nmyangmo/9875840
阅读全文
0 0
- android 图片旋转实现的两种方法的比较
- 图片旋转的两种方法
- Android两种旋转Bitmap方法比较
- android实现图片缩放 旋转的几种方法
- 基于C#的两种图片旋转方法
- 两种图片旋转方法
- android显示图片的两种方法
- android旋转动画的两种实现方式
- js实现图片旋转的三种方法
- java实现多线程的两种方法的比较
- Android实现图片的旋转与暂停
- Oracle中spool命令实现的两种方法比较
- Oracle中spool命令实现的两种方法比较
- 比较洗牌算法的两种实现方法
- Oracle中spool命令实现的两种方法比较
- java实现多线程两种方法的比较
- 洗牌程序的两种实现方法比较
- Android实现加载(loading)图片旋转的三种方式
- 利用javascript打开模态对话框(示例代码)
- Muduo网络库源码分析(六)TcpConnection 的生存期管理
- excel 设置单元格格式为日期格式,数据未发生转换,双击才转换
- Spark原理(一)
- xz压缩文件的解压缩过程
- android 图片旋转实现的两种方法的比较
- windbg常用命令总结
- 递归函数
- Spark Streaming Crash 如何保证Exactly Once
- Android修改整体系统字体大小
- mysql 日志文件mysql-bin文件清除方法
- HTML5上传文件ajaxfileupload.js
- SQLScout插件
- 去除List<String>中的重复元素