Skip to content

Commit 231c3be

Browse files
add checkable and path morph AVDs
1 parent 7feb027 commit 231c3be

File tree

42 files changed

+1744
-2
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+1744
-2
lines changed

Tutorial2-1AnimatedVectorDrawables/src/main/java/com/smarttoolfactory/tutorial2_1animatedvectordrawables/Activity1_1Basics.kt

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,6 @@ class Activity1_1Basics : AppCompatActivity() {
9999
add(AVDModel(R.drawable.avd_profile))
100100
add(AVDModel(R.drawable.avd_notifications_ring))
101101
add(AVDModel(R.drawable.avd_settings))
102-
add(AVDModel(R.drawable.avd_house))
103102

104103
add(HeaderModel("Seekable Vector Drawable"))
105104
add(SeekableVDModel(R.drawable.avd_compass_rotation))
@@ -111,6 +110,27 @@ class Activity1_1Basics : AppCompatActivity() {
111110
add(AVDModel(R.drawable.avd_clock_clock))
112111
add(AVDModel(R.drawable.avd_clock_stopwatch))
113112

113+
add(HeaderModel("Path Morph"))
114+
add(AVDModel(R.drawable.avd_house))
115+
add(AVDModel(R.drawable.avd_pathmorph_arrowoverflow_arrow_to_overflow))
116+
add(AVDModel(R.drawable.avd_pathmorph_arrowoverflow_overflow_to_arrow))
117+
add(AVDModel(R.drawable.avd_pathmorph_crosstick_cross_to_tick))
118+
add(AVDModel(R.drawable.avd_pathmorph_crosstick_tick_to_cross))
119+
add(AVDModel(R.drawable.avd_pathmorph_drawer_arrow_to_hamburger))
120+
add(AVDModel(R.drawable.avd_pathmorph_drawer_hamburger_to_arrow))
121+
add(AVDModel(R.drawable.avd_pathmorph_plusminus_minus_to_plus))
122+
add(AVDModel(R.drawable.avd_pathmorph_plusminus_plus_to_minus))
123+
124+
add(AVDModel(R.drawable.avd_checkable_checkbox_checked_to_unchecked))
125+
add(AVDModel(R.drawable.avd_checkable_checkbox_unchecked_to_checked))
126+
add(AVDModel(R.drawable.avd_checkable_expandcollapse_collapsed_to_expanded))
127+
add(AVDModel(R.drawable.avd_checkable_expandcollapse_expanded_to_collapsed))
128+
add(AVDModel(R.drawable.avd_checkable_radiobutton_checked_to_unchecked))
129+
add(AVDModel(R.drawable.avd_checkable_radiobutton_unchecked_to_checked))
130+
131+
add(HeaderModel("Trims, clips & fills"))
132+
133+
114134
}
115135

116136
return data.toList()
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
<animated-vector
2+
xmlns:android="http://schemas.android.com/apk/res/android"
3+
xmlns:aapt="http://schemas.android.com/aapt"
4+
android:drawable="@drawable/vd_checkable_checkbox_checked">
5+
<target android:name="icon_null">
6+
<aapt:attr name="android:animation">
7+
<set>
8+
<set android:ordering="sequentially">
9+
<objectAnimator
10+
android:duration="166"
11+
android:interpolator="@interpolator/checkable_checkbox_tounchecked_1"
12+
android:propertyName="scaleX"
13+
android:valueFrom="0.2"
14+
android:valueTo="0.18"/>
15+
<objectAnimator
16+
android:duration="333"
17+
android:interpolator="@interpolator/checkable_checkbox_tounchecked_1"
18+
android:propertyName="scaleX"
19+
android:valueFrom="0.18"
20+
android:valueTo="0.2"/>
21+
</set>
22+
<set android:ordering="sequentially">
23+
<objectAnimator
24+
android:duration="166"
25+
android:interpolator="@interpolator/checkable_checkbox_tounchecked_1"
26+
android:propertyName="scaleY"
27+
android:valueFrom="0.2"
28+
android:valueTo="0.18"/>
29+
<objectAnimator
30+
android:duration="333"
31+
android:interpolator="@interpolator/checkable_checkbox_tounchecked_1"
32+
android:propertyName="scaleY"
33+
android:valueFrom="0.18"
34+
android:valueTo="0.2"/>
35+
</set>
36+
</set>
37+
</aapt:attr>
38+
</target>
39+
<target android:name="check_path_merged">
40+
<aapt:attr name="android:animation">
41+
<set>
42+
<objectAnimator
43+
android:duration="166"
44+
android:interpolator="@interpolator/checkable_checkbox_tounchecked_1"
45+
android:propertyName="pathData"
46+
android:valueFrom="M 7,-9 c 0,0 -14,0 -14,0 c -1.1044921875,0 -2,0.8955078125 -2,2 c 0,0 0,14 0,14 c 0,1.1044921875 0.8955078125,2 2,2 c 0,0 14,0 14,0 c 1.1044921875,0 2,-0.8955078125 2,-2 c 0,0 0,-14 0,-14 c 0,-1.1044921875 -0.8955078125,-2 -2,-2 c 0,0 0,0 0,0 Z M -2,5.00001525879 c 0,0 -5,-5.00001525879 -5,-5.00001525879 c 0,0 1.41409301758,-1.41409301758 1.41409301758,-1.41409301758 c 0,0 3.58590698242,3.58601379395 3.58590698242,3.58601379395 c 0,0 7.58590698242,-7.58601379395 7.58590698242,-7.58601379395 c 0,0 1.41409301758,1.41409301758 1.41409301758,1.41409301758 c 0,0 -9,9.00001525879 -9,9.00001525879 Z"
47+
android:valueTo="M 7,-9 c 0,0 -14,0 -14,0 c -1.1044921875,0 -2,0.8955078125 -2,2 c 0,0 0,14 0,14 c 0,1.1044921875 0.8955078125,2 2,2 c 0,0 14,0 14,0 c 1.1044921875,0 2,-0.8955078125 2,-2 c 0,0 0,-14 0,-14 c 0,-1.1044921875 -0.8955078125,-2 -2,-2 c 0,0 0,0 0,0 Z M 0,1.42500305176 c 0,0 -1.4234161377,-1.40159606934 -1.4234161377,-1.40159606934 c 0,0 1.41409301758,-1.41409301758 1.41409301758,-1.41409301758 c 0,0 0.00932312011719,-0.0124053955078 0.00932312011719,-0.0124053955078 c 0,0 0.0234069824219,-0.0235137939453 0.0234069824219,-0.0235137939453 c 0,0 1.41409301758,1.41409301758 1.41409301758,1.41409301758 c 0,0 -1.4375,1.43751525879 -1.4375,1.43751525879 Z"
48+
android:valueType="pathType"/>
49+
<set android:ordering="sequentially">
50+
<objectAnimator
51+
android:duration="133"
52+
android:interpolator="@android:interpolator/linear"
53+
android:propertyName="fillAlpha"
54+
android:valueFrom="1"
55+
android:valueTo="1"/>
56+
<objectAnimator
57+
android:duration="33"
58+
android:interpolator="@interpolator/checkable_checkbox_tounchecked_0"
59+
android:propertyName="fillAlpha"
60+
android:valueFrom="1"
61+
android:valueTo="0"/>
62+
</set>
63+
</set>
64+
</aapt:attr>
65+
</target>
66+
<target android:name="box_inner_merged">
67+
<aapt:attr name="android:animation">
68+
<set>
69+
<set android:ordering="sequentially">
70+
<objectAnimator
71+
android:duration="166"
72+
android:interpolator="@android:interpolator/linear"
73+
android:propertyName="pathData"
74+
android:valueFrom="M 0,-1 l 0,0 c 0.5522847498,0 1,0.4477152502 1,1 l 0,0 c 0,0.5522847498 -0.4477152502,1 -1,1 l 0,0 c -0.5522847498,0 -1,-0.4477152502 -1,-1 l 0,0 c 0,-0.5522847498 0.4477152502,-1 1,-1 Z M 7,-9 c 0,0 -14,0 -14,0 c -1.1044921875,0 -2,0.8955078125 -2,2 c 0,0 0,14 0,14 c 0,1.1044921875 0.8955078125,2 2,2 c 0,0 14,0 14,0 c 1.1044921875,0 2,-0.8955078125 2,-2 c 0,0 0,-14 0,-14 c 0,-1.1044921875 -0.8955078125,-2 -2,-2 c 0,0 0,0 0,0 Z"
75+
android:valueTo="M 0,-1 l 0,0 c 0.5522847498,0 1,0.4477152502 1,1 l 0,0 c 0,0.5522847498 -0.4477152502,1 -1,1 l 0,0 c -0.5522847498,0 -1,-0.4477152502 -1,-1 l 0,0 c 0,-0.5522847498 0.4477152502,-1 1,-1 Z M 7,-9 c 0,0 -14,0 -14,0 c -1.1044921875,0 -2,0.8955078125 -2,2 c 0,0 0,14 0,14 c 0,1.1044921875 0.8955078125,2 2,2 c 0,0 14,0 14,0 c 1.1044921875,0 2,-0.8955078125 2,-2 c 0,0 0,-14 0,-14 c 0,-1.1044921875 -0.8955078125,-2 -2,-2 c 0,0 0,0 0,0 Z"
76+
android:valueType="pathType"/>
77+
<objectAnimator
78+
android:duration="333"
79+
android:interpolator="@interpolator/checkable_checkbox_tounchecked_1"
80+
android:propertyName="pathData"
81+
android:valueFrom="M 0,-1 l 0,0 c 0.5522847498,0 1,0.4477152502 1,1 l 0,0 c 0,0.5522847498 -0.4477152502,1 -1,1 l 0,0 c -0.5522847498,0 -1,-0.4477152502 -1,-1 l 0,0 c 0,-0.5522847498 0.4477152502,-1 1,-1 Z M 7,-9 c 0,0 -14,0 -14,0 c -1.1044921875,0 -2,0.8955078125 -2,2 c 0,0 0,14 0,14 c 0,1.1044921875 0.8955078125,2 2,2 c 0,0 14,0 14,0 c 1.1044921875,0 2,-0.8955078125 2,-2 c 0,0 0,-14 0,-14 c 0,-1.1044921875 -0.8955078125,-2 -2,-2 c 0,0 0,0 0,0 Z"
82+
android:valueTo="M -7,-7 l 14,0 c 0,0 0,0 0,0 l 0,14 c 0,0 0,0 0,0 l -14,0 c 0,0 0,0 0,0 l 0,-14 c 0,0 0,0 0,0 Z M 7,-9 c 0,0 -14,0 -14,0 c -1.1044921875,0 -2,0.8955078125 -2,2 c 0,0 0,14 0,14 c 0,1.1044921875 0.8955078125,2 2,2 c 0,0 14,0 14,0 c 1.1044921875,0 2,-0.8955078125 2,-2 c 0,0 0,-14 0,-14 c 0,-1.1044921875 -0.8955078125,-2 -2,-2 c 0,0 0,0 0,0 Z"
83+
android:valueType="pathType"/>
84+
</set>
85+
<set android:ordering="sequentially">
86+
<objectAnimator
87+
android:duration="133"
88+
android:interpolator="@android:interpolator/linear"
89+
android:propertyName="fillAlpha"
90+
android:valueFrom="0"
91+
android:valueTo="0"/>
92+
<objectAnimator
93+
android:duration="33"
94+
android:interpolator="@interpolator/checkable_checkbox_tounchecked_0"
95+
android:propertyName="fillAlpha"
96+
android:valueFrom="0"
97+
android:valueTo="1"/>
98+
</set>
99+
</set>
100+
</aapt:attr>
101+
</target>
102+
</animated-vector>
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
<animated-vector
2+
xmlns:android="http://schemas.android.com/apk/res/android"
3+
xmlns:aapt="http://schemas.android.com/aapt"
4+
android:drawable="@drawable/vd_checkable_checkbox_unchecked">
5+
<target android:name="icon_null">
6+
<aapt:attr name="android:animation">
7+
<set>
8+
<set android:ordering="sequentially">
9+
<objectAnimator
10+
android:duration="200"
11+
android:interpolator="@interpolator/checkable_checkbox_tochecked_1"
12+
android:propertyName="scaleX"
13+
android:valueFrom="0.2"
14+
android:valueTo="0.18"/>
15+
<objectAnimator
16+
android:duration="300"
17+
android:interpolator="@interpolator/checkable_checkbox_tochecked_1"
18+
android:propertyName="scaleX"
19+
android:valueFrom="0.18"
20+
android:valueTo="0.2"/>
21+
</set>
22+
<set android:ordering="sequentially">
23+
<objectAnimator
24+
android:duration="200"
25+
android:interpolator="@interpolator/checkable_checkbox_tochecked_1"
26+
android:propertyName="scaleY"
27+
android:valueFrom="0.2"
28+
android:valueTo="0.18"/>
29+
<objectAnimator
30+
android:duration="300"
31+
android:interpolator="@interpolator/checkable_checkbox_tochecked_1"
32+
android:propertyName="scaleY"
33+
android:valueFrom="0.18"
34+
android:valueTo="0.2"/>
35+
</set>
36+
</set>
37+
</aapt:attr>
38+
</target>
39+
<target android:name="box_outer_merged">
40+
<aapt:attr name="android:animation">
41+
<set>
42+
<set android:ordering="sequentially">
43+
<objectAnimator
44+
android:duration="200"
45+
android:interpolator="@android:interpolator/linear"
46+
android:propertyName="pathData"
47+
android:valueFrom="M 7,-9 c 0,0 -14,0 -14,0 c -1.1044921875,0 -2,0.8955078125 -2,2 c 0,0 0,14 0,14 c 0,1.1044921875 0.8955078125,2 2,2 c 0,0 14,0 14,0 c 1.1044921875,0 2,-0.8955078125 2,-2 c 0,0 0,-14 0,-14 c 0,-1.1044921875 -0.8955078125,-2 -2,-2 c 0,0 0,0 0,0 Z M -2,5.00001525879 c 0,0 -1.4234161377,-1.40159606934 -1.4234161377,-1.40159606934 c 0,0 1.41409301758,-1.41409301758 1.41409301758,-1.41409301758 c 0,0 0.00932312011719,-0.0124053955078 0.00932312011719,-0.0124053955078 c 0,0 0.0234069824219,-0.0235137939453 0.0234069824219,-0.0235137939453 c 0,0 1.41409301758,1.41409301758 1.41409301758,1.41409301758 c 0,0 -1.4375,1.43751525879 -1.4375,1.43751525879 Z"
48+
android:valueTo="M 7,-9 c 0,0 -14,0 -14,0 c -1.1044921875,0 -2,0.8955078125 -2,2 c 0,0 0,14 0,14 c 0,1.1044921875 0.8955078125,2 2,2 c 0,0 14,0 14,0 c 1.1044921875,0 2,-0.8955078125 2,-2 c 0,0 0,-14 0,-14 c 0,-1.1044921875 -0.8955078125,-2 -2,-2 c 0,0 0,0 0,0 Z M -2,5.00001525879 c 0,0 -1.4234161377,-1.40159606934 -1.4234161377,-1.40159606934 c 0,0 1.41409301758,-1.41409301758 1.41409301758,-1.41409301758 c 0,0 0.00932312011719,-0.0124053955078 0.00932312011719,-0.0124053955078 c 0,0 0.0234069824219,-0.0235137939453 0.0234069824219,-0.0235137939453 c 0,0 1.41409301758,1.41409301758 1.41409301758,1.41409301758 c 0,0 -1.4375,1.43751525879 -1.4375,1.43751525879 Z"
49+
android:valueType="pathType"/>
50+
<objectAnimator
51+
android:duration="300"
52+
android:interpolator="@interpolator/checkable_checkbox_tochecked_1"
53+
android:propertyName="pathData"
54+
android:valueFrom="M 7,-9 c 0,0 -14,0 -14,0 c -1.1044921875,0 -2,0.8955078125 -2,2 c 0,0 0,14 0,14 c 0,1.1044921875 0.8955078125,2 2,2 c 0,0 14,0 14,0 c 1.1044921875,0 2,-0.8955078125 2,-2 c 0,0 0,-14 0,-14 c 0,-1.1044921875 -0.8955078125,-2 -2,-2 c 0,0 0,0 0,0 Z M -2,5.00001525879 c 0,0 -1.4234161377,-1.40159606934 -1.4234161377,-1.40159606934 c 0,0 1.41409301758,-1.41409301758 1.41409301758,-1.41409301758 c 0,0 0.00932312011719,-0.0124053955078 0.00932312011719,-0.0124053955078 c 0,0 0.0234069824219,-0.0235137939453 0.0234069824219,-0.0235137939453 c 0,0 1.41409301758,1.41409301758 1.41409301758,1.41409301758 c 0,0 -1.4375,1.43751525879 -1.4375,1.43751525879 Z"
55+
android:valueTo="M 7,-9 c 0,0 -14,0 -14,0 c -1.1044921875,0 -2,0.8955078125 -2,2 c 0,0 0,14 0,14 c 0,1.1044921875 0.8955078125,2 2,2 c 0,0 14,0 14,0 c 1.1044921875,0 2,-0.8955078125 2,-2 c 0,0 0,-14 0,-14 c 0,-1.1044921875 -0.8955078125,-2 -2,-2 c 0,0 0,0 0,0 Z M -2,5.00001525879 c 0,0 -5,-5.00001525879 -5,-5.00001525879 c 0,0 1.41409301758,-1.41409301758 1.41409301758,-1.41409301758 c 0,0 3.58590698242,3.58601379395 3.58590698242,3.58601379395 c 0,0 7.58590698242,-7.58601379395 7.58590698242,-7.58601379395 c 0,0 1.41409301758,1.41409301758 1.41409301758,1.41409301758 c 0,0 -9,9.00001525879 -9,9.00001525879 Z"
56+
android:valueType="pathType"/>
57+
</set>
58+
<set android:ordering="sequentially">
59+
<objectAnimator
60+
android:duration="166"
61+
android:interpolator="@android:interpolator/linear"
62+
android:propertyName="fillAlpha"
63+
android:valueFrom="0"
64+
android:valueTo="0"/>
65+
<objectAnimator
66+
android:duration="33"
67+
android:interpolator="@interpolator/checkable_checkbox_tochecked_0"
68+
android:propertyName="fillAlpha"
69+
android:valueFrom="0"
70+
android:valueTo="1"/>
71+
</set>
72+
</set>
73+
</aapt:attr>
74+
</target>
75+
<target android:name="box_inner_merged">
76+
<aapt:attr name="android:animation">
77+
<set>
78+
<objectAnimator
79+
android:duration="166"
80+
android:interpolator="@interpolator/checkable_checkbox_tochecked_1"
81+
android:propertyName="pathData"
82+
android:valueFrom="M -7,-7 l 14,0 c 0,0 0,0 0,0 l 0,14 c 0,0 0,0 0,0 l -14,0 c 0,0 0,0 0,0 l 0,-14 c 0,0 0,0 0,0 Z M 7,-9 c 0,0 -14,0 -14,0 c -1.1044921875,0 -2,0.8955078125 -2,2 c 0,0 0,14 0,14 c 0,1.1044921875 0.8955078125,2 2,2 c 0,0 14,0 14,0 c 1.1044921875,0 2,-0.8955078125 2,-2 c 0,0 0,-14 0,-14 c 0,-1.1044921875 -0.8955078125,-2 -2,-2 c 0,0 0,0 0,0 Z"
83+
android:valueTo="M 0,-0.05 l 0,0 c 0.02761423749,0 0.05,0.02238576251 0.05,0.05 l 0,0 c 0,0.02761423749 -0.02238576251,0.05 -0.05,0.05 l 0,0 c -0.02761423749,0 -0.05,-0.02238576251 -0.05,-0.05 l 0,0 c 0,-0.02761423749 0.02238576251,-0.05 0.05,-0.05 Z M 7,-9 c 0,0 -14,0 -14,0 c -1.1044921875,0 -2,0.8955078125 -2,2 c 0,0 0,14 0,14 c 0,1.1044921875 0.8955078125,2 2,2 c 0,0 14,0 14,0 c 1.1044921875,0 2,-0.8955078125 2,-2 c 0,0 0,-14 0,-14 c 0,-1.1044921875 -0.8955078125,-2 -2,-2 c 0,0 0,0 0,0 Z"
84+
android:valueType="pathType"/>
85+
<set android:ordering="sequentially">
86+
<objectAnimator
87+
android:duration="166"
88+
android:interpolator="@android:interpolator/linear"
89+
android:propertyName="fillAlpha"
90+
android:valueFrom="1"
91+
android:valueTo="1"/>
92+
<objectAnimator
93+
android:duration="33"
94+
android:interpolator="@interpolator/checkable_checkbox_tochecked_0"
95+
android:propertyName="fillAlpha"
96+
android:valueFrom="1"
97+
android:valueTo="0"/>
98+
</set>
99+
</set>
100+
</aapt:attr>
101+
</target>
102+
</animated-vector>
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
<animated-vector
2+
xmlns:android="http://schemas.android.com/apk/res/android"
3+
xmlns:aapt="http://schemas.android.com/aapt"
4+
android:drawable="@drawable/vd_checkable_expandcollapse_collapsed">
5+
6+
<target android:name="chevron">
7+
<aapt:attr name="android:animation">
8+
<objectAnimator
9+
android:duration="250"
10+
android:interpolator="@android:interpolator/fast_out_slow_in"
11+
android:propertyName="translateY"
12+
android:valueFrom="15"
13+
android:valueTo="9"/>
14+
</aapt:attr>
15+
</target>
16+
17+
<target android:name="leftBar">
18+
<aapt:attr name="android:animation">
19+
<objectAnimator
20+
android:duration="200"
21+
android:interpolator="@interpolator/pathmorph_expandcollapse"
22+
android:propertyName="rotation"
23+
android:valueFrom="135"
24+
android:valueTo="45"
25+
android:valueType="floatType"/>
26+
</aapt:attr>
27+
</target>
28+
29+
<target android:name="rightBar">
30+
<aapt:attr name="android:animation">
31+
<objectAnimator
32+
android:duration="200"
33+
android:interpolator="@interpolator/pathmorph_expandcollapse"
34+
android:propertyName="rotation"
35+
android:valueFrom="45"
36+
android:valueTo="135"
37+
android:valueType="floatType"/>
38+
</aapt:attr>
39+
</target>
40+
41+
</animated-vector>
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
<animated-vector
2+
xmlns:android="http://schemas.android.com/apk/res/android"
3+
xmlns:aapt="http://schemas.android.com/aapt"
4+
android:drawable="@drawable/vd_checkable_expandcollapse_expanded">
5+
6+
<target android:name="chevron">
7+
<aapt:attr name="android:animation">
8+
<objectAnimator
9+
android:duration="250"
10+
android:interpolator="@android:interpolator/fast_out_slow_in"
11+
android:propertyName="translateY"
12+
android:valueFrom="9"
13+
android:valueTo="15"/>
14+
</aapt:attr>
15+
</target>
16+
17+
<target android:name="leftBar">
18+
<aapt:attr name="android:animation">
19+
<objectAnimator
20+
android:duration="200"
21+
android:interpolator="@interpolator/pathmorph_expandcollapse"
22+
android:propertyName="rotation"
23+
android:valueFrom="135"
24+
android:valueTo="45"
25+
android:valueType="floatType"/>
26+
</aapt:attr>
27+
</target>
28+
29+
<target android:name="rightBar">
30+
<aapt:attr name="android:animation">
31+
<objectAnimator
32+
android:duration="200"
33+
android:interpolator="@interpolator/pathmorph_expandcollapse"
34+
android:propertyName="rotation"
35+
android:valueFrom="45"
36+
android:valueTo="135"
37+
android:valueType="floatType"/>
38+
</aapt:attr>
39+
</target>
40+
41+
</animated-vector>

0 commit comments

Comments
 (0)