ILayoutAnimationController

动画布局
授权协议 Apache
开发语言 Java
所属分类 手机/移动开发、 Android UI 组件
软件类型 开源软件
地区 国产
投 递 者 叶声
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

自定义 LayoutAnimationController,可任意定制 ViewGroup 实例内部子 View 的动画执行顺序,1行代码就让你的ViewGroup拥有华丽的布局动画!     

使用方法

方法一:

首先创建 ILayoutAnimationController 实例,然后将此实例作为参数为 ViewGroup 设置布局动画

- 1:{@link ILayoutAnimationController#generateController(Animation, float, ILayoutAnimationController.IndexAlgorithm)}
- 2:{@link android.view.ViewGroup#setLayoutAnimation(LayoutAnimationController)}

方法二:

1行代码直接搞定,以下两种方法任选

- {@link ILayoutAnimationController#setLayoutAnimation(ViewGroup, int, float, ILayoutAnimationController.IndexAlgorithm)}
- {@link ILayoutAnimationController#setLayoutAnimation(ViewGroup, Animation, float,ILayoutAnimationController.IndexAlgorithm)}

示例代码:

LinearLayout ll = (LinearLayout) findViewById(R.id.ll);
//两行代码设置布局动画:
ILayoutAnimationController controller = ILayoutAnimationController.generateController(AnimationUtils.loadAnimation(this,R.anim.activity_open_enter),0.8f,ILayoutAnimationController.IndexAlgorithm.INDEXSIMPLEPENDULUM);
ll.setLayoutAnimation(controller);

//一行代码直接搞定:
ILayoutAnimationController.setLayoutAnimation(ll,R.anim.activity_open_enter,0.8f,ILayoutAnimationController.IndexAlgorithm.INDEXSIMPLEPENDULUM);

方法setLayoutAnimation中各参数介绍:
/**
 * 根据传入的动画资源ID、单个子View动画延时、子View动画执行顺序算法枚举值 创建一个新的CustomLayoutAnimationController实例,
 * 将此实例作为参数为viewGroup设置布局动画
 * @param viewGroup
 * @param animResId
 * @param delay
 * @param indexAlgorithm
 */
public static void setLayoutAnimation(@NonNull ViewGroup viewGroup,@AnimRes int animResId, float delay,@Nullable final IndexAlgorithm indexAlgorithm){
    Animation animation = AnimationUtils.loadAnimation(viewGroup.getContext(),animResId);
    setLayoutAnimation(viewGroup,animation,delay,indexAlgorithm);
}

注意

使用 ILayoutAnimationController 获取的 ILayoutAnimationController 实例,调用 setOrder(int order) 方法无效!

 相关资料
  • HTML5画布提供了绘制图像并完全擦除图像的必要方法。 我们可以使用Javascript帮助在HTML5画布上模拟好的动画。 以下是两个重要的Javascript方法,用于在画布上制作动画图像 - Sr.No. 方法和描述 1 setInterval(callback, time); 该方法在给定的time毫秒后重复执行所提供的代码。 2 setTimeout(callback, time); 此

  • 我有一个RelativeLayout,其中两个LinearLayout和一个TextView(三个都是孩子)共享同一个空间,这意味着在任何给定点上,只有一个视图可见,而其他两个视图消失。在应用程序启动时,TextView是可见视图。我有一个按钮,可以启动动画,使文本视图淡出,线性布局淡入。另一个线性布局还有一个按钮。 逻辑如下: 按下按钮- 只要上面的交互使用相同的按钮(对于相同的线性布局),这就

  • 当我打开视图控制器时,我有一个从顶部飞出的视图。我已将UIView的Y约束设置为-200,当视图加载时,将调用以下内容,一切正常: 但是现在我有一个关闭按钮,它应该将动画回到-200位置,然后从屏幕上删除视图控制器。但是这个动画没有发生。视图控制器被直接删除。这是我正在做的: 我提到了这个链接。这似乎对他们有效,但对我无效。请帮忙。

  • 我有一个自定义视图CustomLayout(蓝色,自定义UIView),该视图包含3个子视图,通过使用约束(布局锚定)垂直对齐,每个视图按照以下顺序对齐: 1视图:幻灯片(红色,自定义UIView) 我想,当我单击按钮(黄色)时,如果使用动画打开,SlideLayout(红色)的高度大小会增加,如果关闭,则会减少。和其他视图必须在动画期间更改位置,如果SlideLayout增加/减少,则父视图(C

  • 我错过了什么? 为了便于阅读,这里提供了一个要点,并附带了一个测试用例:https://Gist.github.com/teyc/5668517

  • 我找到了几个与此相关的问题和答案,但没有一个解决方案让我明白为什么这段代码不起作用: 我有一个tkinter窗口,其中动态生成了内容——这意味着如果屏幕上有两个或多个小部件要显示,则需要能够向下滚动。我希望能够用小部件填充框架“f”,然后使用画布。创建_window()函数以可滚动方式显示它。 现在显示窗口,但滚动条未启用-类似于滚动区域不正确或滚动条与画布之间的链接不正确。