Android-动画实现原理
一 实现原理:
图形变换通过矩阵实现。图形变换是图形学的基本知识,简单来说就是,每种变换都是一次矩阵运算。
在Android中,CAnvas类中包含当前矩阵,当调用Canvas.drawBitmap(bmp, x, y, paint)绘制时,Android会先把bmp
做一次矩阵运算,然后将运算的结果显示在Canvas上。这样,我们只需要不断修改Canvas的矩...
分类:
移动开发 时间:
2015-07-12 15:46:39
阅读次数:
213
1、画图的主要方法 //Bitmap:图片对象,left:向左偏移。top: 顶部偏移 drawBitmap(Bitmap bitmap, float left, float top, Paint paint)2、对图片剪接和限定显示区域 drawBitmap(Bitmap bitmap, Rec....
分类:
移动开发 时间:
2015-06-17 11:07:20
阅读次数:
167
错误如下:Causedby:java.lang.IllegalArgumentException:Cannotdrawrecycledbitmaps2atandroid.view.GLES20Canvas.drawBitmap(GLES20Canvas.java:794)3atandroid.view.GLES20RecordingCanvas.drawBitmap(GLES20RecordingCanvas.java:117)然后定位到这个代码段:BitmapthumbBmp..
分类:
其他好文 时间:
2015-06-09 14:12:09
阅读次数:
184
前面说Canvas大致可以分为三类:
1. save、restore 等与层的保存和回滚相关的方法;
2. scale、rotate、clipXXX 等对画布进行操作的方法;
3. drawXXX 等一系列绘画相关的方法;
前面主要讲了drawBitmap方法,并举了一个星球浮动的栗子,在那个例子中,星球有大有小,需要移动,有时候可能需求上还需要旋转或错切,有了这些需求,我们就需要使用到与Canvas相关的translate、scale、rotate、skew这几个方法,平移、缩放、旋转、错切,这四个词听起...
分类:
其他好文 时间:
2015-05-07 14:33:20
阅读次数:
209
上一篇只讲了Canvas中的drawBitmap方法,并且还说的这个方法好像很腻害、能做出很多牛逼效果的样子,接下来这篇文章只是为了作为上一篇文章的一个小栗子,进一步拓展大家利用drawBitmap 完成动效的思路!
好了,先上失真的不能再失真的效果图:
咱们先一起来分析下上面的效果:
假定这是你刚从UE 或动效射鸡湿手里拿到上面的动效设计图,映入眼帘的是苍茫的星空,漂浮的星球营造出的深邃、浩瀚的宇宙,好了,不多BB了,针对上图你会想到什么样的实现方案?
1. 有些同学可能会想到创建对应数量个ImageVi...
分类:
移动开发 时间:
2015-04-22 11:41:13
阅读次数:
305
前面讲了paint,后面会花几篇主要讲讲canvas,并且由于最近项目比较紧,所以近期的文章都会“短小精悍”;
paint 作为画笔,里面有非常多而强大的设置方法,比如设置颜色过滤器,设置位图渲染、渐变,设置图像的混合模式等等,而canvas呢?里面提供了哪些利器可以为我们所用,一起来看看:
通过上图我们可以看到,canvas 里的方法基本可以分为这么几类:
1. save、restore 等与层的保存和回滚相关的方法;
2. scale、rotate、clipXXX 等对画布进行操作的方法;
3. dra...
分类:
其他好文 时间:
2015-04-14 11:20:17
阅读次数:
307
1、原理和效果图总共有两张图片,一张背景图片,一张遮罩图片。背景图片有开关字样,通过遮住一个字来实现开关按钮。继承自View控件,通过Canvas和Paint结合来实现图片的绘制。通过canvas的drawBitmap方法和距离左边的位置来绘制图片,调用invalidate方法来不断的更新UI,就可...
分类:
其他好文 时间:
2015-03-13 20:44:08
阅读次数:
189
1、主要的绘制图片方法 //Bitmap:图片对象,left:偏移左边的位置,top: 偏移顶部的位置 drawBitmap(Bitmap bitmap, float left, float top, Paint paint)2、对图片剪接和限定显示区域 drawBitmap(Bitmap bit....
分类:
移动开发 时间:
2015-03-12 16:37:23
阅读次数:
164
需求
在SurfaceView或者普通View中,我们在每个绘制周期(onDraw)中,不仅需要更新绘制Bitmap对象在View中得位置,而且还希望Bitmap能够以它自身的中心点为圆心,进行自旋转。
解决
使用Canvas的drawBitmap(Bitmap bitmap,Matrix matrix,Paint paint)方法,最重要的就是定制Matrix。
代码如下: /**...
分类:
移动开发 时间:
2015-03-05 13:02:42
阅读次数:
214
(以下转自:http://blog.csdn.net/longyi_java/article/details/6930480)1、基本的绘制图片方法 //Bitmap:图片对象,left:偏移左边的位置,top: 偏移顶部的位置 drawBitmap(Bitmap bitmap, float lef...
分类:
移动开发 时间:
2015-02-26 21:37:44
阅读次数:
232