`
freebee
  • 浏览: 15199 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

005. Android frame animation

阅读更多

Android 不支持Path或者Shape的animation,只能用Frame来模拟。定义好每一帧所需要画的内容即可。

 

但是有一点Drawable不支持动画启动和结束的callback事件。其实也挺简单,我们重载Drawable的onDraw方法,在那里触发callback事件。

 

代码片段:

 

public class CallbackableShapeDrawable extends ShapeDrawable{
    public Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
    public Path path;
    public boolean isLastFrame = false;
    public boolean isFirstFrame = false;
   
    public AnimationCallBack callBack;
   
    protected void onDraw(Shape s, Canvas c, Paint p) {
        if(isFirstFrame && callBack != null){
            callBack.animationStarted(this);
        }
        c.drawPath(path, paint);
        if(isLastFrame && callBack != null){
            callBack.animationEnded(this);
        }
    }
   
    public abstract static class AnimationCallBack {
        public abstract void animationStarted(CallbackableShapeDrawable drawable);
        public abstract void animationEnded(CallbackableShapeDrawable drawable);
    }
}

 

分享到:
评论

相关推荐

    FrameAnimation:适用于Android的高性能帧动画库

    FrameAnimation 用TextureView或SurfaceView 高性能播放帧动画,避免在很多帧的情况下使用AnimationDrawable带来的OOM和卡顿问题。 华为 mate 20X 1920×1080 24bit...com.yuyashuai.frameanimation.FrameAnimationView

    frameAnimation使用

    例如,我们可以创建一个名为`frame_animation.xml`的文件: ```xml <animation-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/frame1" android:duration=...

    Frame Animation 帧动画Demo

    animation.start(); ``` 需要注意的是,帧动画在Android中并不高效,如果帧数过多或者动画持续时间较长,可能会对性能造成影响,尤其是在老旧设备上。因此,对于复杂的动画,更推荐使用`Property Animation`或`View...

    Frame Animation

    基本动画案例:Tween Animation, Frame Animation,介绍参考:http://blog.csdn.net/forwardyzk/article/details/42739281

    Android frame by frame animation动画显示

    在Android开发中,帧动画(Frame-by-Frame Animation)是一种常用的技术,用于创建连续的图像序列,模拟视频或gif动图的效果。这种动画通常适用于简单的移动、旋转或渐变效果,比如按钮按下反馈、加载指示器等。接...

    FrameAnimation

    2. **定义动画资源**:在项目的res/drawable目录下创建一个XML文件,例如`frameanimation.xml`。在这个文件中,你需要列出所有的帧并指定它们的显示顺序和持续时间。下面是一个基本的示例: ```xml <animation-list...

    Android Animation Frame逐帧动画

    frameAnimation.start(); ``` **控制动画行为** 除了基本的帧定义外,还可以通过XML属性控制Frame动画的行为。例如,可以设置`repeatCount`来决定动画重复次数(`infinite`表示无限循环),`repeatMode`用来指定...

    FrameAnimation.zip

    本资源"FrameAnimation.zip"提供了一个关于如何在Android应用中创建和使用帧动画的实例,包括静态和动态两种实现方式,并特别展示了如何模仿美团应用中的“加载中...”小人奔跑动画。 帧动画的基本原理是通过连续...

    2011.10.18——— android 自定义Animation

    9. **动画监听器**:`Animation.AnimationListener`接口允许我们添加开始、结束和重复事件的回调,以便在动画的各个阶段执行额外的操作。 在实际开发中,自定义动画可能涉及到对XML动画资源的编写,这样可以在布局...

    Frame滑动动画包

    3. Leo.Frame.Animation.Group.groupproj:这是项目组文件,通常用来组织多个相关的项目,便于管理。 4. Leo.Frame.Animation_XE10.identcache:这是一个缓存文件,存储了项目中的组件ID信息,有助于IDE快速识别和...

    FrameAnimation(安卓动画)

    `FrameAnimation`是Android系统提供的一种简单易用的帧动画实现方式,特别适用于新手学习。通过组合一系列静态图片,我们可以创建出流畅的连续动画效果,比如标题中提到的"WiFi信号动画"和"DNF狂战士上挑加下斩动画...

    Android View中添加Animation.rar

    `Android View中添加Animation.rar`这个压缩包文件很可能是包含了一些示例代码或教程,帮助开发者了解如何在Android的视图元素上添加动画效果。这里我们将深入探讨Android中的View动画机制,包括基本动画类型、如何...

    frameAnimation动画效果

    创建一个XML文件,例如`frame_animation.xml`,并在其中定义`<animation-list>`元素。每个`<item>`标签代表一个帧,通过`android:drawable`指定帧图片,`android:duration`设置每帧持续的时间(以毫秒为单位)。 ...

    Android中的Animation的使用

    animation.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { // 动画开始 } @Override public void onAnimationEnd(Animation ...

    Android 帧(frame)动画

    frameAnimation.start(); ``` 三、源码解析 在Android系统中,帧动画的实现主要涉及到两个关键类:AnimationDrawable和AnimationDrawableItem。前者是帧动画的容器,后者代表每一帧的具体信息。 1. ...

    Sample_2_9.rar_android_android animation_android image_android 游

    frameAnimation.start(); } }); ``` 此外,Android还提供了其他类型的动画,如TranslationAnimation(平移)、ScaleAnimation(缩放)和AlphaAnimation(透明度变化),这些可以组合使用以创建更复杂的效果。 在...

    安卓帧动画FrameAnimation例子

    在Android工程的res/drawable目录下创建一个XML文件,例如`frameanimation.xml`,作为帧动画的资源配置。在这个文件中,你需要定义每一帧图片和它们的持续时间。比如: ```xml <animation-list xmlns:android=...

    帧动画 frameanimation

    - 在`res/anim`目录下创建一个XML文件,例如`frame_animation.xml`。 - 在XML文件中,定义`<animation-list>`标签作为根元素,设置`android:oneshot`属性来决定动画是否只播放一次(true为单次,false为循环)。 ...

    Android Animation相关

    在`res/anim`目录下创建一个`frame_animation.xml`文件,包含多个`<item>`标签,每个代表一帧: ```xml <animation-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@...

    frameAnimation动画

    if (frameAnimation.isRunning()) { // 判断动画是否正在运行 frameAnimation.stop(); } else { frameAnimation.start(); } ``` 5. **优化帧动画** - 为了提高性能,可以考虑以下几点: - 减少帧数:尽量...

Global site tag (gtag.js) - Google Analytics