Skip to content

Instantly share code, notes, and snippets.

@rock3r
Last active January 20, 2017 13:20
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rock3r/d08afca57ff7e744d09ea7583ae738a3 to your computer and use it in GitHub Desktop.
Save rock3r/d08afca57ff7e744d09ea7583ae738a3 to your computer and use it in GitHub Desktop.
Standardised Japanese Toilet 🚽 Big Flush πŸŒ€ pictogram - as Animated Vector Drawable
<!-- All copyright to the original owners. The AVD version is free to use; please give attribution if you redistribute/modify -->
<animated-vector
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt">
<aapt:attr name="android:drawable">
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
android:width="693dp"
android:height="693dp"
android:viewportWidth="693"
android:viewportHeight="693">
<group
android:name="root"
android:pivotX="346"
android:pivotY="346">
<group
android:name="swirls"
android:pivotX="356"
android:pivotY="339">
<group android:name="flush_big">
<path
android:name="swirl_low"
android:pathData="M 51.445 334.625 C 55.315 394.827 126.006 564.226 317.238 547.449 C 517.576 529.874 511.586 277.836 394.496 277.836"
android:strokeColor="#ff000000"
android:strokeWidth="45"
android:strokeLineCap="round"
android:strokeLineJoin="round"
android:strokeMiterLimit="10"/>
<group android:name="dot">
<path
android:name="dot_left_1"
android:pathData="M 45.64 278.259 L 45.709 278.782"
android:strokeColor="#ff000000"
android:strokeWidth="45"
android:strokeLineCap="round"
android:strokeLineJoin="round"
android:strokeMiterLimit="10"/>
</group>
<group android:name="dot_1">
<path
android:name="dot_left_1_1"
android:pathData="M 54.64 216.259 L 54.709 216.782"
android:strokeColor="#ff000000"
android:strokeWidth="45"
android:strokeLineCap="round"
android:strokeLineJoin="round"
android:strokeMiterLimit="10"/>
</group>
<group android:name="dot_2">
<path
android:name="dot_left_1_2"
android:pathData="M 80.64 160.259 L 80.709 160.782"
android:strokeColor="#ff000000"
android:strokeWidth="45"
android:strokeLineCap="round"
android:strokeLineJoin="round"
android:strokeMiterLimit="10"/>
</group>
<path
android:name="swirl_left"
android:pathData="M 483.27 28.402 C 374.695 12.226 228.1 60.772 207.246 201.465 C 186.392 342.157 255.961 414.477 335.672 423.434 C 415.383 432.391 447.145 377.808 452.164 346.5 C 457.183 315.192 444.084 275.264 394.422 278.984"
android:strokeColor="#ff000000"
android:strokeWidth="45"
android:strokeLineCap="round"
android:strokeLineJoin="round"
android:strokeMiterLimit="10"/>
<group android:name="dot_3">
<path
android:name="dot_left_1_3"
android:pathData="M 539.64 41.259 L 539.709 41.782"
android:strokeColor="#ff000000"
android:strokeWidth="45"
android:strokeLineCap="round"
android:strokeLineJoin="round"
android:strokeMiterLimit="10"/>
</group>
<group android:name="dot_4">
<path
android:name="dot_left_1_4"
android:pathData="M 594.64 67.259 L 594.709 67.782"
android:strokeColor="#ff000000"
android:strokeWidth="45"
android:strokeLineCap="round"
android:strokeLineJoin="round"
android:strokeMiterLimit="10"/>
</group>
<path
android:name="swirl_right"
android:pathData="M 436.91 659.246 C 494.281 644.813 632.184 572.586 635.184 416.27 C 638.184 259.953 526.351 172.498 433.91 169.293 C 341.469 166.088 280.766 209.242 270.082 289.238 C 259.398 369.234 303.246 420.59 368.578 419.59 C 433.91 418.59 452.773 365.566 452.773 337.176 C 452.773 308.785 436.91 273.521 393.992 278.438"
android:strokeColor="#ff000000"
android:strokeWidth="45"
android:strokeLineCap="round"
android:strokeLineJoin="round"
android:strokeMiterLimit="10"/>
<group android:name="dot_5">
<path
android:name="dot_left_1_5"
android:pathData="M 373.64 668.259 L 373.709 668.782"
android:strokeColor="#ff000000"
android:strokeWidth="45"
android:strokeLineCap="round"
android:strokeLineJoin="round"
android:strokeMiterLimit="10"/>
</group>
</group>
</group>
</group>
</vector>
</aapt:attr>
<target android:name="dot_left_1">
<aapt:attr name="android:animation">
<set xmlns:android="http://schemas.android.com/apk/res/android">
<objectAnimator
android:name="dot_left_1"
android:propertyName="strokeWidth"
android:startOffset="116"
android:duration="204"
android:valueFrom="0"
android:valueTo="45"
android:valueType="floatType"
android:interpolator="@android:anim/overshoot_interpolator"/>
<objectAnimator
android:name="dot_left_1"
android:propertyName="strokeWidth"
android:duration="1"
android:valueFrom="0"
android:valueTo="0"
android:valueType="floatType"
android:interpolator="@android:anim/linear_interpolator"/>
<objectAnimator
android:name="dot_left_1"
android:propertyName="strokeWidth"
android:startOffset="3976"
android:duration="100"
android:valueFrom="45"
android:valueTo="0"
android:valueType="floatType"
android:interpolator="@android:interpolator/fast_out_linear_in"/>
</set>
</aapt:attr>
</target>
<target android:name="dot_left_1_1">
<aapt:attr name="android:animation">
<set xmlns:android="http://schemas.android.com/apk/res/android">
<objectAnimator
android:name="dot_left_1_1"
android:propertyName="strokeWidth"
android:startOffset="56"
android:duration="200"
android:valueFrom="0"
android:valueTo="45"
android:valueType="floatType"
android:interpolator="@android:anim/overshoot_interpolator"/>
<objectAnimator
android:name="dot_left_1_1"
android:propertyName="strokeWidth"
android:duration="1"
android:valueFrom="0"
android:valueTo="0"
android:valueType="floatType"
android:interpolator="@android:anim/linear_interpolator"/>
<objectAnimator
android:name="dot_left_1_1"
android:propertyName="strokeWidth"
android:startOffset="3938"
android:duration="113"
android:valueFrom="45"
android:valueTo="0"
android:valueType="floatType"
android:interpolator="@android:interpolator/fast_out_linear_in"/>
</set>
</aapt:attr>
</target>
<target android:name="dot_left_1_2">
<aapt:attr name="android:animation">
<set xmlns:android="http://schemas.android.com/apk/res/android">
<objectAnimator
android:name="dot_left_1_2"
android:propertyName="strokeWidth"
android:duration="1"
android:valueFrom="0"
android:valueTo="0"
android:valueType="floatType"
android:interpolator="@android:anim/linear_interpolator"/>
<objectAnimator
android:name="dot_left_1_2"
android:propertyName="strokeWidth"
android:startOffset="1"
android:duration="200"
android:valueFrom="0"
android:valueTo="45"
android:valueType="floatType"
android:interpolator="@android:anim/overshoot_interpolator"/>
<objectAnimator
android:name="dot_left_1_2"
android:propertyName="strokeWidth"
android:startOffset="3898"
android:duration="113"
android:valueFrom="45"
android:valueTo="0"
android:valueType="floatType"
android:interpolator="@android:interpolator/fast_out_linear_in"/>
</set>
</aapt:attr>
</target>
<target android:name="dot_left_1_3">
<aapt:attr name="android:animation">
<set xmlns:android="http://schemas.android.com/apk/res/android">
<objectAnimator
android:name="dot_left_1_3"
android:propertyName="strokeWidth"
android:startOffset="221"
android:duration="200"
android:valueFrom="0"
android:valueTo="45"
android:valueType="floatType"
android:interpolator="@android:anim/overshoot_interpolator"/>
<objectAnimator
android:name="dot_left_1_3"
android:propertyName="strokeWidth"
android:duration="1"
android:valueFrom="0"
android:valueTo="0"
android:valueType="floatType"
android:interpolator="@android:anim/linear_interpolator"/>
<objectAnimator
android:name="dot_left_1_3"
android:propertyName="strokeWidth"
android:startOffset="4054"
android:duration="100"
android:valueFrom="45"
android:valueTo="0"
android:valueType="floatType"
android:interpolator="@android:interpolator/fast_out_linear_in"/>
</set>
</aapt:attr>
</target>
<target android:name="dot_left_1_4">
<aapt:attr name="android:animation">
<set xmlns:android="http://schemas.android.com/apk/res/android">
<objectAnimator
android:name="dot_left_1_4"
android:propertyName="strokeWidth"
android:startOffset="155"
android:duration="200"
android:valueFrom="0"
android:valueTo="45"
android:valueType="floatType"
android:interpolator="@android:anim/overshoot_interpolator"/>
<objectAnimator
android:name="dot_left_1_4"
android:propertyName="strokeWidth"
android:duration="1"
android:valueFrom="0"
android:valueTo="0"
android:valueType="floatType"
android:interpolator="@android:anim/linear_interpolator"/>
<objectAnimator
android:name="dot_left_1_4"
android:propertyName="strokeWidth"
android:startOffset="4019"
android:duration="100"
android:valueFrom="45"
android:valueTo="0"
android:valueType="floatType"
android:interpolator="@android:interpolator/fast_out_linear_in"/>
</set>
</aapt:attr>
</target>
<target android:name="dot_left_1_5">
<aapt:attr name="android:animation">
<set xmlns:android="http://schemas.android.com/apk/res/android">
<objectAnimator
android:name="dot_left_1_5"
android:propertyName="strokeWidth"
android:duration="1"
android:valueFrom="0"
android:valueTo="0"
android:valueType="floatType"
android:interpolator="@android:anim/linear_interpolator"/>
<objectAnimator
android:name="dot_left_1_5"
android:propertyName="strokeWidth"
android:startOffset="155"
android:duration="103"
android:valueFrom="0"
android:valueTo="45"
android:valueType="floatType"
android:interpolator="@android:anim/overshoot_interpolator"/>
<objectAnimator
android:name="dot_left_1_5"
android:propertyName="strokeWidth"
android:startOffset="3845"
android:duration="100"
android:valueFrom="45"
android:valueTo="0"
android:valueType="floatType"
android:interpolator="@android:interpolator/fast_out_linear_in"/>
</set>
</aapt:attr>
</target>
<target android:name="swirls">
<aapt:attr name="android:animation">
<set xmlns:android="http://schemas.android.com/apk/res/android">
<objectAnimator
android:name="swirls"
android:propertyName="rotation"
android:startOffset="102"
android:duration="1502"
android:valueFrom="0"
android:valueTo="-360"
android:valueType="floatType"
android:interpolator="@android:interpolator/fast_out_linear_in"/>
<objectAnimator
android:name="swirls"
android:propertyName="rotation"
android:startOffset="1604"
android:duration="3121"
android:valueFrom="-360"
android:valueTo="-1700"
android:valueType="floatType"
android:interpolator="@android:anim/linear_interpolator"/>
</set>
</aapt:attr>
</target>
<target android:name="root">
<aapt:attr name="android:animation">
<set xmlns:android="http://schemas.android.com/apk/res/android">
<objectAnimator
android:name="root"
android:propertyName="scaleX"
android:startOffset="71"
android:duration="599"
android:valueFrom="1"
android:valueTo="0.8"
android:valueType="floatType"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"/>
<objectAnimator
android:name="root"
android:propertyName="scaleY"
android:startOffset="71"
android:duration="599"
android:valueFrom="1"
android:valueTo="0.8"
android:valueType="floatType"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"/>
</set>
</aapt:attr>
</target>
<target android:name="swirl_low">
<aapt:attr name="android:animation">
<set xmlns:android="http://schemas.android.com/apk/res/android">
<objectAnimator
android:name="swirl_low"
android:propertyName="trimPathEnd"
android:startOffset="185"
android:duration="504"
android:valueFrom="0"
android:valueTo="1"
android:valueType="floatType"
android:interpolator="@android:anim/decelerate_interpolator"/>
<objectAnimator
android:name="swirl_low"
android:propertyName="trimPathEnd"
android:duration="1"
android:valueFrom="0"
android:valueTo="0"
android:valueType="floatType"
android:interpolator="@android:anim/linear_interpolator"/>
<objectAnimator
android:name="swirl_low"
android:propertyName="trimPathStart"
android:startOffset="4059"
android:duration="666"
android:valueFrom="0"
android:valueTo="1"
android:valueType="floatType"/>
</set>
</aapt:attr>
</target>
<target android:name="swirl_left">
<aapt:attr name="android:animation">
<set xmlns:android="http://schemas.android.com/apk/res/android">
<objectAnimator
android:name="swirl_left"
android:propertyName="trimPathEnd"
android:duration="1"
android:valueFrom="0"
android:valueTo="0"
android:valueType="floatType"
android:interpolator="@android:anim/linear_interpolator"/>
<objectAnimator
android:name="swirl_left"
android:propertyName="trimPathEnd"
android:startOffset="308"
android:duration="376"
android:valueFrom="0"
android:valueTo="1"
android:valueType="floatType"
android:interpolator="@android:anim/decelerate_interpolator"/>
<objectAnimator
android:name="swirl_left"
android:propertyName="trimPathStart"
android:startOffset="4132"
android:duration="593"
android:valueFrom="0"
android:valueTo="1"
android:valueType="floatType"/>
</set>
</aapt:attr>
</target>
<target android:name="swirl_right">
<aapt:attr name="android:animation">
<set xmlns:android="http://schemas.android.com/apk/res/android">
<objectAnimator
android:name="swirl_right"
android:propertyName="trimPathEnd"
android:startOffset="200"
android:duration="510"
android:valueFrom="0"
android:valueTo="1"
android:valueType="floatType"
android:interpolator="@android:anim/linear_interpolator"/>
<objectAnimator
android:name="swirl_right"
android:propertyName="trimPathEnd"
android:duration="1"
android:valueFrom="0"
android:valueTo="0"
android:valueType="floatType"
android:interpolator="@android:anim/linear_interpolator"/>
<objectAnimator
android:name="swirl_right"
android:propertyName="trimPathStart"
android:startOffset="3924"
android:duration="801"
android:valueFrom="0"
android:valueTo="1"
android:valueType="floatType"/>
</set>
</aapt:attr>
</target>
</animated-vector>
@rock3r
Copy link
Author

rock3r commented Jan 20, 2017

@romannurik
Copy link

Love it!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment