本篇文章给大家分享的是有关怎么在Android利用Matrix对图片进行旋转,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
自定义一个View,用来控制这两个图片的旋转。com.oyp.loadingdisk.LoadingDiscView.java
package com.oyp.loadingdisk; import java.io.InputStream; import android.content.Context; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Matrix; import android.graphics.Paint; import android.graphics.PaintFlagsDrawFilter; import android.view.View; public class LoadingDiscView extends View { private RefreshHandle refreshHandle; private Context context; private Bitmap m_bmp_disc = null; private Matrix m_matrix_disc = new Matrix(); private Bitmap m_bmp_light = null; private Matrix m_matrix_light = new Matrix(); private PaintFlagsDrawFilter mSetfil = null; private Paint mypaint = null; private float m_scale =1.0f; private float m_disc_rot_speed = 0; private int m_state_play = 1; private float m_disc_max = 20f; public void setRefreshHandle(RefreshHandle refreshHandle) { this.refreshHandle = refreshHandle; } public LoadingDiscView(Context context) { super(context); this.context = context; mSetfil = new PaintFlagsDrawFilter(0, Paint.FILTER_BITMAP_FLAG);//设置画布绘图无锯齿 initBitmap(); } public boolean initBitmap() { mypaint = new Paint(); //给Paint加上抗锯齿标志 mypaint.setAntiAlias(true);//画笔的抗锯齿(用于线条等) Resources res = context.getResources(); InputStream is = res.openRawResource(R.drawable.loading_disc); m_bmp_disc = BitmapFactory.decodeStream(is); matrixPostTranslate(m_matrix_disc,m_bmp_disc); is = res.openRawResource(R.drawable.loading_light); m_bmp_light = BitmapFactory.decodeStream(is); matrixPostTranslate(m_matrix_light,m_bmp_light); return true; } private void matrixPostTranslate(Matrix matrix,Bitmap bitmap) { int tmp_width = bitmap.getWidth(); int tmp_height = bitmap.getHeight(); matrix.postTranslate(-tmp_width / 2, -tmp_height / 2); //设置平移位置 matrix.postScale(m_scale, m_scale); //设置缩放比例 matrix.postTranslate(123 * m_scale, 146 * m_scale); } protected void onDraw(Canvas canvas) { super.onDraw(canvas); //给Canvas加上抗锯齿标志 canvas.setDrawFilter(mSetfil);//图片线条(通用)的抗锯齿 canvas.drawBitmap(m_bmp_disc, m_matrix_disc, mypaint); canvas.drawBitmap(m_bmp_light, m_matrix_light, mypaint); } public void update() { if (m_disc_rot_speed > 0.01 || m_state_play == 1){ if (m_state_play == 1 && m_disc_rot_speed<m_disc_max){ m_disc_rot_speed += (m_disc_max+0.5f-m_disc_rot_speed)/30; } else if (m_disc_rot_speed>0.1){ m_disc_rot_speed -= (m_disc_rot_speed)/40; } m_matrix_disc .postRotate(m_disc_rot_speed, 123*m_scale, 146*m_scale); invalidate(); } } public void onPause(){ refreshHandle.stop(); } public void onResume(){ refreshHandle.run(); } }
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1148
183.71 KB下载数642
644.84 KB下载数2756
相关文章
发现更多好内容- 如何高效使用Uncomtrade数据库进行查询
- Java 配置环境变量后如何进行使用操作?(java配置环境变量后如何使用)
- Java 中防止接口重复提交的方法有哪些?(java接口防止重复提交的方法是什么)
- 如何提高 Java Office 的性能?(java office 怎样提高性能 )
- Java 抽象工厂模式的优缺点有哪些?(java抽象工厂模式有哪些优缺点)
- 在 Java 中,charsequence 的具体用法究竟是什么?(java中charsequence的用法是什么)
- 如何利用 Java Quarter 进行数据挖掘?(java quarter如何进行数据挖掘)
- Java 中常见的比较操作符有哪些?(Java比较操作符有哪些)
- 在 Java 中,Integer 究竟有哪些作用呢?(java中integer的作用是什么)
- Java 实体类如何进行赋值操作?(java实体类怎么赋值)
猜你喜欢
AI推送时光机怎么在Android利用Matrix对图片进行旋转
后端开发2023-05-31
怎么在python中利用opencv对图片进行旋转
后端开发2023-06-14
Android中利用matrix 控制图片的旋转、缩放、移动
后端开发2022-06-06
怎么在html5中利用Canvas旋转图片
后端开发2023-06-09
怎么在Android应用中利用Bitmap对图片进行优化
后端开发2023-05-31
如何在Android中利用ViewFlippe对视图进行翻转
后端开发2023-05-31
如何在Android中利用ImageView.src对图片进行拉伸处理
后端开发2023-05-31
Android应用中怎么对图片进行压缩
后端开发2023-05-31
利用java怎么对图片进行压缩与缩放
后端开发2023-05-31
如何在Android应用中对图片进行压缩
后端开发2023-05-31
怎么在Android中利用ImageView将图片进行圆形、圆角处理
后端开发2023-05-31
怎么在Android中利用 ksoap2对WebService进行调用
后端开发2023-05-30
Android中怎么对图片进行圆角处理
后端开发2023-05-31
怎么在Android应用中利用Bitmap实现一个位图旋转效果
后端开发2023-05-31
怎么利用Node进行图片压缩
后端开发2023-05-14
怎么在Android中利用ClassLoader对类进行加载
后端开发2023-05-31
利用python怎么对碑帖图片进行横向拼接
后端开发2023-06-07
Android应用中怎么对超大的图片进行加载
后端开发2023-05-31
怎么在Android中利用 listview对数据进行显示
后端开发2023-05-31
使用Canvas怎么对图片进行处理
后端开发2023-06-09
咦!没有更多了?去看看其它编程学习网 内容吧