Droidlover

XAnimLayout

XAnimLayout 让引导页动画easy

XAnimLayout封装了常见的引导页动画,仅仅需要在xml中设置相关属性,即可实现translate、rotate、alpha、scale、colorGradient等动画。


xanimlayout image

主要功能

  • 实现常用的动画效果
  • 自定义属性
  • 扩展性强

使用

  • Gradle : compile ‘cn.droidlover:XAnimLayout:1.0.0’’
  • Github : XAnimLayout

说明

库中包括两部分:

  • AnimScrollView :继承ScrollView,用于滑动和滑动状态的监听。
  • AnimLinearLayout :AnimScrollView的直接子view

主要用法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<cn.droidlover.xanimlayout.AnimScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="none">
<cn.droidlover.xanimlayout.AnimLinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
app:al_firstFillViewPort="true">
<TextView
android:layout_width="match_parent"
android:layout_height="200dp"
android:background="#BDF0B9"
android:gravity="center"
android:text="XAnimLayout"
android:textColor="#fff"
android:textSize="22sp"
app:av_alpha="true" />
<TextView
android:layout_width="match_parent"
android:layout_height="150dp"
android:background="#FFE2C8"
android:gravity="center"
android:text="RxJava"
android:textColor="#fff"
android:textSize="22sp"
app:av_translateGravity="right" />
<TextView
android:layout_width="match_parent"
android:layout_height="200dp"
android:gravity="center"
android:text="Dagger"
android:textSize="22sp"
app:av_endColorBg="#140405"
app:av_startColorBg="#A15772" />
<TextView
android:layout_width="match_parent"
android:layout_height="300dp"
android:background="#BAE4D0"
android:gravity="center"
android:text="Android"
android:textSize="28sp"
app:av_alpha="true" />
</cn.droidlover.xanimlayout.AnimLinearLayout>
</cn.droidlover.xanimlayout.AnimScrollView>

不需要任何java代码,即可实现开场动画。

使用解析

AnimLinearLayout

AnimLinearLayout包含一个自定义属性:al_firstFillViewPort 。若true,则其第一个子view的高度就会占满全屏。若false,则其高度不被调整。此属性默认为true。

支持的属性

1
2
3
4
5
6
7
8
9
10
11
12
<attr name="av_rotate" format="boolean" />
<attr name="av_alpha" format="boolean" />
<attr name="av_scaleX" format="boolean" />
<attr name="av_scaleY" format="boolean" />
<attr name="av_startColorBg" format="color" />
<attr name="av_endColorBg" format="color" />
<attr name="av_translateGravity">
<flag name="left" value="0x01" />
<flag name="top" value="0x02" />
<flag name="right" value="0x04" />
<flag name="bottom" value="0x08" />
</attr>

属性说明:

  • av_rotate:boolean 表示是否可旋转
    • true 有旋转动画
    • false 没有旋转动画
  • av_alpha:Boolean 表示是否有alpha动画
    • true 伴随alpha动画
    • false 没alpha动画
  • av_scaleX 表示x方向的scale动画
  • av_scaleY 表示y方向的scale动画
  • av_startColorBg与av_endColorBg配对使用,作用于该view的background,分别表示开始颜色、结束颜色
  • av_translateGravity 表示translate的开始方向,有left、top、right、bottom等值,默认为-1,需要说明的是,此属性与传统的gravity用法类似,可组合使用
1
app:av_translateGravity="right"

或者使用两个值

1
app:av_translateGravity="right|bottom"