diff options
| author | Jules Aguillon | 2024-11-18 00:13:08 +0100 |
|---|---|---|
| committer | Jules Aguillon | 2024-11-18 00:13:08 +0100 |
| commit | 997b7be4c005696df91dc1833b4fb4db6c984991 (patch) | |
| tree | 768e9cd16851ad12404a8b7c39d197e35932c3ca /res | |
| parent | 23097921cfb4e6c86c947ff39438e943bda24f18 (diff) | |
| download | unexpected-keyboard-997b7be4c005696df91dc1833b4fb4db6c984991.tar.gz unexpected-keyboard-997b7be4c005696df91dc1833b4fb4db6c984991.zip | |
launcher: Animated vector describing swipe gesture
Replace the short video with an animated vector image that shows the
swipe gesture.
This is much lighter and reliable than the mp4 video, which failed to
play on many devices.
Source for the image of the key is in inkscape SVG format in srcs/res
and is converted to an android drawable when needed. The swipe animation
is hand-written.
Diffstat (limited to 'res')
| -rw-r--r-- | res/drawable/doc_anim_swipe.xml | 25 | ||||
| -rw-r--r-- | res/drawable/doc_key_u.xml | 25 | ||||
| -rw-r--r-- | res/layout/launcher_activity.xml | 2 | ||||
| -rw-r--r-- | res/raw/intro_video.mp4 | bin | 123771 -> 0 bytes | |||
| -rw-r--r-- | res/values/styles.xml | 7 |
5 files changed, 58 insertions, 1 deletions
diff --git a/res/drawable/doc_anim_swipe.xml b/res/drawable/doc_anim_swipe.xml new file mode 100644 index 0000000..6e91d30 --- /dev/null +++ b/res/drawable/doc_anim_swipe.xml @@ -0,0 +1,25 @@ +<?xml version="1.0"?> +<animated-vector xmlns:android="http://schemas.android.com/apk/res/android" xmlns:aapt="http://schemas.android.com/aapt"> + <aapt:attr name="android:drawable"> + <vector android:name="vector" android:width="35dp" android:height="40dp" android:viewportWidth="35" android:viewportHeight="40"> + <path android:name="trace" android:pathData="M 0 0" android:fillColor="#09b3f1" android:strokeColor="#09b3f1" android:strokeWidth="2" android:strokeLineCap="round"/> + </vector> + </aapt:attr> + <target android:name="trace"> + <aapt:attr name="android:animation"> + <set> + <objectAnimator android:propertyName="fillAlpha" android:duration="100" android:valueFrom="0" android:valueTo="1" android:valueType="floatType" android:interpolator="@android:interpolator/fast_out_slow_in"/> + <objectAnimator android:propertyName="strokeAlpha" android:duration="100" android:valueFrom="0" android:valueTo="1" android:valueType="floatType" android:interpolator="@android:interpolator/fast_out_slow_in"/> + <objectAnimator + android:propertyName="pathData" + android:duration="700" + android:valueFrom="M 17.5 20.0 m 2,0 a 2,2 0 1,1 -4,0 a 2,2 0 1,1 4,0 M 17.5 20.0 L 17.5,20.0" + android:valueTo=" M 31 4 m 2,0 a 2,2 0 1,1 -4,0 a 2,2 0 1,1 4,0 M 17.5 20.0 L 31 ,4" + android:valueType="pathType" + android:interpolator="@android:interpolator/linear_out_slow_in"/> + <objectAnimator android:propertyName="fillAlpha" android:startOffset="900" android:duration="400" android:valueFrom="1" android:valueTo="0" android:valueType="floatType" android:interpolator="@android:interpolator/linear_out_slow_in"/> + <objectAnimator android:propertyName="strokeAlpha" android:startOffset="900" android:duration="400" android:valueFrom="1" android:valueTo="0" android:valueType="floatType" android:interpolator="@android:interpolator/linear_out_slow_in"/> + </set> + </aapt:attr> + </target> +</animated-vector> diff --git a/res/drawable/doc_key_u.xml b/res/drawable/doc_key_u.xml new file mode 100644 index 0000000..4a94fe2 --- /dev/null +++ b/res/drawable/doc_key_u.xml @@ -0,0 +1,25 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="35dp" + android:height="40dp" + android:viewportWidth="35.0" + android:viewportHeight="40.0"> + <path + android:pathData="M11.26,10.13L23.74,10.13A1.13,1.13 0,0 1,24.87 11.26L24.87,28.74A1.13,1.13 0,0 1,23.74 29.88L11.26,29.88A1.13,1.13 0,0 1,10.13 28.74L10.13,11.26A1.13,1.13 0,0 1,11.26 10.13z" + android:fillAlpha="1" + android:strokeColor="#404040" + android:fillColor="#333333" + android:strokeWidth="0.251" + android:strokeAlpha="1"/> + <path + android:pathData="m16.64,17.64l0,3.21q0,0.41 0.16,0.58 0.17,0.17 0.5,0.17 0.31,0 0.61,-0.19 0.29,-0.19 0.46,-0.46l0,-3.33l0.98,0l0,4.6l-0.84,0l-0.06,-0.59q-0.26,0.34 -0.65,0.53 -0.39,0.18 -0.8,0.18 -0.67,0 -1,-0.37 -0.33,-0.37 -0.33,-1.01l0,-3.33z" + android:fillColor="#fdfdfd" + android:strokeWidth="0.265729"/> + <path + android:pathData="m12.52,24.71q0.3,0 0.54,0.09 0.25,0.09 0.49,0.35l-0.37,0.33q-0.14,-0.16 -0.28,-0.23 -0.14,-0.08 -0.34,-0.08 -0.27,0 -0.41,0.15 -0.14,0.15 -0.14,0.39 0,0.17 0.08,0.31 0.08,0.14 0.23,0.22 0.15,0.08 0.33,0.08l1.58,0l0,0.46l-0.47,0l0,1.56q-0.1,0.12 -0.26,0.24 -0.16,0.12 -0.41,0.21 -0.24,0.08 -0.58,0.08 -0.45,0 -0.75,-0.17 -0.3,-0.17 -0.44,-0.45 -0.15,-0.28 -0.15,-0.6 0,-0.46 0.24,-0.74 0.24,-0.28 0.66,-0.37l0,-0.02q-0.25,-0.06 -0.4,-0.18 -0.15,-0.12 -0.22,-0.3 -0.07,-0.17 -0.07,-0.37 0,-0.26 0.14,-0.48 0.14,-0.22 0.4,-0.35 0.26,-0.13 0.6,-0.13zM13.18,26.79l-0.58,0q-0.28,0 -0.45,0.12 -0.17,0.12 -0.26,0.32 -0.08,0.19 -0.08,0.39 0,0.2 0.08,0.37 0.08,0.17 0.24,0.28 0.16,0.1 0.42,0.1 0.21,0 0.37,-0.07 0.16,-0.07 0.26,-0.19z" + android:fillColor="#cccccc" + android:strokeWidth="0.265729"/> + <path + android:pathData="m22.12,15.25 l-0.61,-0.19 1.54,-3.37l-1.84,0l0,-0.51l2.49,0l0,0.47z" + android:fillColor="#cccccc" + android:strokeWidth="0.265729"/> +</vector> diff --git a/res/layout/launcher_activity.xml b/res/layout/launcher_activity.xml index 4e0cc0c..67b3eb6 100644 --- a/res/layout/launcher_activity.xml +++ b/res/layout/launcher_activity.xml @@ -4,7 +4,7 @@ <TextView style="@style/paragraph" android:text="@string/launcher_description"/> <Button style="@style/paragraph" android:text="@string/launcher_button_imesettings" android:onClick="launch_imesettings" android:layout_width="wrap_content"/> <Button style="@style/paragraph" android:text="@string/launcher_button_imepicker" android:onClick="launch_imepicker" android:layout_width="wrap_content"/> - <VideoView android:id="@+id/launcher_intro_video" android:layout_width="240dp" android:layout_height="wrap_content" android:layout_gravity="center"/> + <ImageView style="@style/anim" android:id="@+id/launcher_anim_swipe" android:background="@drawable/doc_key_u" android:src="@drawable/doc_anim_swipe"/> <TextView android:id="@+id/launcher_tryhere_text" style="@style/paragraph" android:text="@string/launcher_tryhere"/> <EditText android:id="@+id/launcher_tryhere_area" style="@style/paragraph" android:inputType="text" android:hint="@string/launcher_tryhere_hint" android:importantForAutofill="no"/> <TextView style="@style/paragraph" android:text="@string/launcher_sourcecode"/> diff --git a/res/raw/intro_video.mp4 b/res/raw/intro_video.mp4 Binary files differdeleted file mode 100644 index 9eefe52..0000000 --- a/res/raw/intro_video.mp4 +++ /dev/null diff --git a/res/values/styles.xml b/res/values/styles.xml index 8705d98..56edbde 100644 --- a/res/values/styles.xml +++ b/res/values/styles.xml @@ -56,5 +56,12 @@ <item name="android:layout_marginHorizontal">16dp</item> <item name="android:layout_gravity">center</item> </style> + <style name="anim"> + <item name="android:layout_width">100dp</item> + <item name="android:layout_height">wrap_content</item> + <item name="android:layout_marginVertical">16dp</item> + <item name="android:layout_gravity">center</item> + <item name="android:adjustViewBounds">true</item> + </style> <style name="appTheme" parent="@android:style/Theme.DeviceDefault.DayNight"/> </resources> |
