今天公司让做Animation的动态转换效果。其中一个功能就是将一张图片透明后转换成另外一张图片。用Handler更新UI的时候总是达不到效果,后来才发现Animation有监听事件,写个监听就搞定了。代码如下 有需要的参考吧
view = (ImageView)getTarget();
alpha1 = new AlphaAnimation((float)fromAlpha, (float)toAlpha);
alpha2 = new AlphaAnimation((float)toAlpha,(float)fromAlpha);
alpha1.setDuration((long)(getDuration()*1000));
alpha2.setDuration((long)(getDuration()*1000));
alpha1.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationRepeat(Animation animation) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationEnd(Animation animation) {
// TODO Auto-generated method stub
Bitmap bmp = BitmapFactory.decodeResource(TransitionActivity.mContext.getResources(), R.drawable.image2);
view.setImageBitmap(bmp);
view.startAnimation(alpha2);
}
});
handler.post(new Runnable() {
@Override
public void run() {
view.startAnimation(alpha1);
}
});
}
另外还有一种方法就是用Android提供的AnimationSet将要播放的动画add到AnimationSet中,根据动画的时间一一执行。
@Override
public Animation translate(float x, float y) {
Animation alpha = new AlphaAnimation(fromAlpha, toAlpha);
AnimationSet amSet = new AnimationSet(false);
if(ImageObject.resId != 0){
Animation alphaGlow = new AlphaAnimation(toAlpha,fromAlpha);
alphaGlow.setDuration(1000);
alphaGlow.setStartOffset(2000);
amSet.addAnimation(alpha);
amSet.addAnimation(alphaGlow);
return amSet;
}
return alpha;
}
分享到:
相关推荐
Core Animation可以实现平滑、高性能的2D和3D动画,包括位置、大小、透明度等属性的变化。 2. UIKit Animation:基于Core Animation之上,UIKit提供了一些简便的API,如`UIView`的`animateWithDuration:`系列方法,...
**CSS3 Animation动画详解** CSS3是Web设计领域的一个重大突破,它引入了许多新的特性,其中最引人注目的就是动画(Animation)功能。通过CSS3的动画,开发者可以为网页元素添加平滑、动态的效果,提升用户体验。在...
在实际开发中,我们可以结合`wx.createAnimation`的`rotate`(旋转)、`scale`(缩放)、`opacity`(透明度)等方法,实现丰富的3D效果和过渡动画。同时,还可以利用`duration`、`delay`、`timingFunction`等参数...
### Android Animation动画基础知识点 #### 一、Android动画类型 Android平台支持多种动画效果,主要分为两类:**基于XML的动画**与**基于Java代码的动画**。 1. **基于XML的动画**主要包括: - **alpha(渐变...
这个"微信小程序animation动画卡片效果"是一个很好的实例,它展示了如何利用微信小程序的动画API来实现动态卡片展示,常见于菜单界面或者商品展示场景。下面我们将详细探讨这个效果的实现原理以及相关的知识点。 ...
在实践中,Core Animation的灵活性和效率使得它成为iOS开发中不可或缺的一部分,无论是用于创建简单的滑动效果,还是复杂的3D转换,都能游刃有余。学习和掌握Core Animation的使用,对于提升iOS应用的用户体验至关...
这个压缩包"Android应用源码之(Animation动画)"提供了Android应用中动画效果的源码示例,非常适合那些正在进行毕业设计或者想要深入理解Android动画机制的学生进行学习。在本文中,我们将详细探讨Android动画系统...
可以使用`ObjectAnimator`或者`Animation`类来实现平移、旋转、透明度变化等动画效果。例如,可以使用`ObjectAnimator.ofFloat(view, "alpha", 0f, 1f)`来创建一个淡入效果。 3. **自定义PageTransformer**: ...
3. **基本动画(Basic Animation)**:CABasicAnimation用于简单的一对一属性动画,如位置、透明度等。 4. **关键帧动画(Keyframe Animation)**:CAKeyframeAnimation允许你在动画过程中设置多个关键值,创建复杂...
本文将深入探讨四种主要的渐变动画:Alpha(透明度)、Scale(缩放)、Translate(平移)和Rotate(旋转),以及如何通过Java代码和XML两种方式来实现这些动画。 1. **Alpha渐变动画**: Alpha动画主要用于改变...
除了基本的路径动画,还可以结合其他属性一起使用,如`opacity`(透明度)、`transform`(变换)等,创造出更复杂的视觉效果。同时,`CABasicAnimation`还支持关键帧动画,通过`keyTimes`和`values`属性,可以在动画...
补间动画类`Animation`内部维护了一系列的状态信息,包括但不限于初始化标志`mInitialized`、是否开始`mStarted`、是否结束`mEnded`、填充前标志`mFillBefore`、填充启用标志`mFillEnabled`、起始时间`mStartTime`、...
支持导出多种主流图片格式,GIF,SWF,视频(可带透明背景),图片动画序列。 Aurora 3D Animation Maker内置了很多动画效果,有多种动态背景,是制作三维动画和旗帜的最佳选择。同时还具有动出导出功能,可以把你...
Android动画例子(AnimationExample),写了四种效果 alpha 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动画效果 rotate 画面转移旋转动画效果 文章:...
- **使用显式图层(Explicit Layers)**:将UIView转换为显式图层可以提高动画性能。 - **减少重绘次数**:避免频繁地修改图层属性导致不必要的重绘。 - **利用硬件加速**:通过启用硬件加速,可以让 GPU 负责渲染...
Android支持多种动画类型,包括属性动画(Property Animation)、帧动画(Frame Animation)和视图动画(View Animation)。Logo动画通常适合使用属性动画,因为它提供了更丰富的控制和灵活性。在"QccLogo-...
"动画实现view的转换"这个主题主要关注如何使用`UIView`类中的动画方法来实现界面元素的动态变化,为你的博客提供可展示的实例代码。`UIView`动画使得开发者能够轻松地添加平滑、引人入胜的视觉效果到应用中。 在...
估值器(Evaluator)处理动画值的转换,如IntTypeEvaluator用于整型动画,ArgbEvaluator用于颜色动画。 五、动画监听 可以添加Animation监听器来获取动画状态变化,如开始、结束、重复等事件,以便执行相应的操作。...
"android_animation"这个主题主要聚焦于Android中的View动画,这包括了转换动画(Translation Animation)、缩放动画(Scale Animation)、旋转动画(Rotation Animation)以及平移动画(Alpha Animation)。...
这种方式非常适合在不关心具体动画细节时,如宽高变化、透明度变化等场景下使用。 而Animated动画则提供了更加强大和灵活的动画选项,开发者可以通过 Animated API 实现更复杂和精细的动画效果。它适用于需要精确...