首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

自定义View(二)-动画- 代码生成View动画

前言 上篇我们介绍了视图动画,说的确切点应该是视图动画中的补间动画(Tween Animation),关于逐帧动画(Frame Animation)用法更简单,这里先不做介绍后期再自定义View的使用会用到...这篇我们来一起学习将上篇用XML实现的动画用试着用代码来生成,毕竟有些时候我们是用代码来控制动画的。...如果设为false,则表示它下面的动画自己定义各自的插值器。...---- 实战 View动画讲到这基本上也就差不多了,那么我们用个小例子在实际中运用一下。 下面这个例子就是百篮应用中Activi ty进入与退出动画。我们就可以用我们学到的View动画来去实现。...->当前Activity向右退出 由完全可见变成完全不可见 即将进入的Activity反之 那么此时就是两个动画->从右退出,从左进入 那么就清楚了这里应该有四个动画,每个动画为组合动画:平移与渐变

51410
您找到你想要的搜索结果了吗?
是的
没有找到

Android开发之View动画

Android动画主要分为3种 View动画动画 属性动画 何为View动画View动画主要是对View对象进行变换所达到的动画效果,如平移、缩放、旋转和透明度等,下面写个简单案例。...动画文件 首先在res目录下新建一个anim文件夹,然后新建4个动画文件,如下: ?...: android:interpolator:动画集合插值器,主要影响动画的速度,默认为加速减速插值器,还有线性插值器、减速插值器等等 android:shareInterpolator:动画集合中的动画是否与几何共享同一个插值器...android:duration:动画集合执行时间 android:fillAfter:动画结束以后View是否停在结束位置,默认是false不停留,但是该属性需要设置在动画集合中才有效果,设在单独的动画中是无效的...2、View动画并没有真正改变View的位置,也就是说就算你看到了动画最终停留在了某个位置,它的真身还是在原来的位置,有点像神话小说的元神出窍,所以使用的时候要特别注意,如给Button设置点击事件,就会发现新位置的

92950

Android动画View Animation

文章导航 Android动画-概述 Drawable Animation使用方式 View Animation使用方式 Property Animation使用方式 一、动画类型 Android的View...animation由四种类型组成:alpha、scale、translate、rotate XML配置文件中 alpha 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动画效果...rotate 画面转移旋转动画效果 Java Code代码中 AlphaAnimation 渐变透明度动画效果 ScaleAnimation 渐变尺寸伸缩动画效果 TranslateAnimation...画面转换位置移动动画效果 RotateAnimation 画面转移旋转动画效果 二、Android动画模式 Animation主要有两种动画模式:tweened 和 frame 一种是tweened...animation(渐变动画) alpha scale 一种是frame by frame(画面转换动画) translate rotate 三、XML文件中定义动画 打开Eclipse,

83830

自定义View(三)-动画-属性动画ValueAnimator

前言 之前我们把视图动画(也就是View动画)分析的差不多了,当然帧动画我们没有讲解,其实帧动画比较简单,就是通过顺序播放一系列的图像从而产生动画效果,可以简单理解为图片的切换。...再者我们想改变一个控件颜色用View动画也是无法做到的,因为View动画只能对派生自View的控件实例起作用;。但是属性动画却可以对任意"对象"起作用,甚至是没有对象。...View Animation仅能对指定的控件做动画,而Property Animator是通过改变控件某一属性值来做动画的。...View动画之所以叫视图动画,因为它做动画是对控件的视图,影像做动画,并没有改变控件的属性。所以当我们用视图做动画完成后造成点击事件与setVisibility(View.GONE)失效。...这就说明View动画虽能对控件做动画,但并没有改变控件内部的属性值。 提示: 如果想隐藏的话可以使用view.clearAnimation()清楚View动画

1.3K31

【Android 属性动画】属性动画 Property Animation 与 视图动画 View Animation 区别

文章目录 一、动画效果添加对象 二、动画效果类型 三、动画效果与实际属性 四、开发复杂程度 属性动画 Property Animation 可以为 任何对象 ( View 对象 / 非 View 对象...) 的 任何属性 添加 动画效果 , 动画执行时会 实时修改对象本身的属性 , 推荐使用 ; 一、动画效果添加对象 ---- 视图动画 View Animation 只能为 View 及其子类组件添加动画..., 不能对其它对象添加动画效果 ; 属性动画 Property Animation 可以为任何对象添加动画 ; 二、动画效果类型 ---- 视图动画 View Animation 只能提供有限的几种动画效果...---- 视图动画 View Animation 只是单纯的修改绘制 View 组件的位置 , 该 View 组件实际的位置不会改变 ; 如果对一个按钮进行移动动画 , 动画结束后 , 点击该按钮无效..., 因为按钮的实际位置还是在原来的位置 ; 属性动画 Property Animation 执行后 , 当前显示的位置和属性 , 就是当前的组件对象的属性 ; 四、开发复杂程度 ---- 视图动画 View

37900

View 动画 Animation 运行原理解析

这次想来梳理一下 View 动画也就是补间动画(ScaleAnimation, AlphaAnimation, TranslationAnimation...)这些动画运行的流程解析。...基本用法 我们要使用一个 View 动画时,一般都是先 new 一个动画,然后配置各种参数,最后调用动画要作用到的那个 View 的 startAnimation(), 将动画实例作为参数传进去,接下去就可以看到动画运行的效果了...View 的刷新,而动画只是在这个过程中顺便执行的。...遗留问题 最后仍然遗留一些尚未解决的问题,等待继续探索: Q1:大伙都清楚,View 动画区别于属性动画的就是 View 动画并不会对这个 View 的属性值做修改,比如平移动画,平移之后 View 还是在原来的位置上...Q2:既然 View 动画不会改变 View 的属性值,那么如果是缩放动画时,View 需要重新执行测量操作么?

1.4K50

2014-10-31Android学习------setContentView(View view)--------GIF动画实现

我学习Android都是结合源代码去学习,这样比较直观,非常清楚的看清效果,觉得很好,今天的学习源码是网上找的个GIF动画完美实现 源码 百度搜就知道很多下载的地方 这节学习的就是如何让一个GIF...view); 也就是说让我们这个界面以一种视图来加载,很显然我们就需要去定义一个View类。...我们自定义View类,我们在前面26个字母列表的实现中就说到了,想要去自己定义一个View类,必须去继承 android.view.View这个类,然后去重载 onDraw(Canvas canvas...view....对的 接下来我们就需要去处理 onDraw(Canvas canvas)这个函数了 在实现一个动画的时候,我们还需要掌握一些 知识 动画一般采用帧形式播放,这就决定我们需要去考虑播放的时间,每帧播放的长度

23930

Android 自定义 view 动画按钮

用到的知识点比较简单: view的坐标系知识,(大家没有不熟悉的吧) view的canvas基本API(画矩形,画扇形,) view的自定义属性(attr提供选项) 属性动画的知识(老生常谈的知识,ObjectAnimation...和ValueAniamtion) 下面我们就一步步实现这个button 我们写一个自定义的类继承View实现其构造,在构造函数中获取自定义属性的值 重写view的onMeasue,确定和测量我们view...的大小和测试模式的确定 然后获取测量后view的宽和高 然后就是最后一步了onDraw,几分钟,我们已经完成了百分之80的工作 最后20%就是让view的内容画到画布上,并且让其动起来就ok了 画圆形的...ok到现在我们所有的图形元素都准备到位,剩下的就是提供两个方法,一个是开始登陆,button变成圆形,还有一个就是登陆的结果不管失败还是成功都要变成button,以及还有一个在变成圆球的时候旋转的动画...一步步来 然后就是类似的一个方法,圆圈变成button的方法 这样我们view的全部工作都做完了,剩下的就是在Mainactivity里面用一下 由于 就一个这个demo就一个自定义view,项目就不上传了

1.2K80

View.animate()动画ViewPropertyAnimator原理解析

这次想来讲讲 View.animate(),这是一种超好用的动画实现方式,用这种方式来实现常用的动画效果非常方便,但在某些场景下会有一个坑,所以这次就来梳理一下它的原理。...(View view) { mView = view; view.ensureTransformationInfo(); } mView 是一个成员变量,在构造函数中被赋值,还记得吧,要用这种方式实现动画时...我们还是按照流程来一步步详细的分析,View.animate() 方式实现的动画,流程上是设置动画行为--启动动画--每一帧进度回调中进行ui操作。...很显然,ViewPropertyAnimator 里的所有动画都是作用于同一个 View 上,而不同组的动画又有可能同一时刻都在运行中,那么,一个 View 的同一种类型动画有可能在同一时刻被执行两次么...Q2:View 的 mRenderNode 对象又是个什么东西?它的 setXXX 方法又是如何修改 View 的属性值来达到动画效果的?

1.3K50

Android自定义View app更新动画详解

观察动画,可以分为几个阶段: 初始化阶段 显示立即升级按钮,在点击立即升级按钮后,执行放大再缩小至消失动画 准备阶段 进度条背景从中间向两端扩散,然后进度提示图片显示,进度提示文字显示0% 更新阶段 进度更新时...pbProgerssDrawable.getHeight() / 2 - pbPaint.getStrokeWidth() + textRect.bottom, textPaint); } 3.这个时候界面就开始下载apk(代码不贴了),然后通知view...来更新进度,更新的动画是图片和文字旋转向前移动(我们的做法是将画布旋转),如果一定时间进度没有变化,更新的图片和文字置回正常状态(我们通过启动线程不断的将画布旋转回来并更新view,如果这个阶段进度有更新的话...,发现其实每个动画并没有那么难,我们这里用到的有path绘制及截取,getPosTan(获取路径上某点的坐标及其切线的坐标),利用Matrix做动画,使用属性动画ValueAnimator。...本篇还有好多功能没有实现,比如下载失败动画,失败后恢复至初始化动画,不过任何轮子都不一定能完全适合你,学习到知识之后自己造一个适合自己的才是最重要。

34210

自定义View(四)-动画- Interpolator与Evaluator

参数input: input参数是一个float类型,它取值范围是0到1,表示当前动画的进度,取0时表示动画刚开始,取1时表示动画结束,取0.5时表示动画中间的位置,其它类推。...什么叫动画的进度,动画的进度就是动画在时间上的进度,与我们的任何设置无关,随着时间的增长,动画的进度自然的增加,从0到1;input参数相当于时间的概念,我们通过setDuration()指定了动画的时长...} }); //自定义View public class MyPointView extends View { private Point mCurPoint;...根据对象的变化做动画。虽然我们没有讲到自定义View用到的也不难,里面也没有什么难度就不细讲了。 ---- 结语 这里属性动画中的ValueAnimatot基本也就差不多了。...其实学起来回头看看也不是很难,在自定义View中重要是思路,平时还是已改多看看自定义View控件的文章,多学习多积累多练习才能熟练掌握,大家和我一起加油吧!

78720
领券