液位动画(电池医生)
Liquid level animation( Battery Doctor )
我想知道如何在android中制作这种动画(在电池医生应用程序中也是如此)。
我找到了一种方法,使用两个不透明度为 50% 的绿色图像,一个在另一个后面,另一个在前面,以隐藏不需要的内容(圆圈),我通过 XML 使用下面的代码
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<rotate
android:duration="1850"
android:fromDegrees="-4"
android:pivotX="50%"
android:pivotY="50%"
android:repeatCount="infinite"
android:repeatMode="reverse"
android:interpolator="@android:anim/linear_interpolator"
android:toDegrees="4" />
<translate
android:fromXDelta="0"
android:toXDelta="0"
android:fromYDelta="0"
android:toYDelta="1"
android:repeatCount="infinite"
android:repeatMode="reverse"
android:interpolator="@android:anim/linear_interpolator"
android:duration="1500" />
</set>
第二个绿色的使用这个:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<rotate
android:duration="1800"
android:fromDegrees="-1"
android:pivotX="50%"
android:pivotY="50%"
android:repeatCount="infinite"
android:repeatMode="reverse"
android:interpolator="@android:anim/linear_interpolator"
android:toDegrees="1" />
<translate
android:fromXDelta="80"
android:toXDelta="-4"
android:fromYDelta="-1"
android:toYDelta="1"
android:repeatCount="infinite"
android:repeatMode="reverse"
android:interpolator="@android:anim/linear_interpolator"
android:duration="1500" />
</set>
但是如何以编程方式创建视图?我想通过代码动态设置级别。例如 myView.setLevel(45);
我终于找到了一个库:WaveView
https://github.com/john990/WaveView
编辑
这个库 https://github.com/gelitenight/WaveView 也做同样的事情,但功能更多。你可以:
- 水平移动波形。
- 设置水位。
- 设置波浪的垂直尺寸。
- 设置波浪的水平尺寸。
我想知道如何在android中制作这种动画(在电池医生应用程序中也是如此)。
我找到了一种方法,使用两个不透明度为 50% 的绿色图像,一个在另一个后面,另一个在前面,以隐藏不需要的内容(圆圈),我通过 XML 使用下面的代码
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<rotate
android:duration="1850"
android:fromDegrees="-4"
android:pivotX="50%"
android:pivotY="50%"
android:repeatCount="infinite"
android:repeatMode="reverse"
android:interpolator="@android:anim/linear_interpolator"
android:toDegrees="4" />
<translate
android:fromXDelta="0"
android:toXDelta="0"
android:fromYDelta="0"
android:toYDelta="1"
android:repeatCount="infinite"
android:repeatMode="reverse"
android:interpolator="@android:anim/linear_interpolator"
android:duration="1500" />
</set>
第二个绿色的使用这个:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<rotate
android:duration="1800"
android:fromDegrees="-1"
android:pivotX="50%"
android:pivotY="50%"
android:repeatCount="infinite"
android:repeatMode="reverse"
android:interpolator="@android:anim/linear_interpolator"
android:toDegrees="1" />
<translate
android:fromXDelta="80"
android:toXDelta="-4"
android:fromYDelta="-1"
android:toYDelta="1"
android:repeatCount="infinite"
android:repeatMode="reverse"
android:interpolator="@android:anim/linear_interpolator"
android:duration="1500" />
</set>
但是如何以编程方式创建视图?我想通过代码动态设置级别。例如 myView.setLevel(45);
我终于找到了一个库:WaveView
https://github.com/john990/WaveView
编辑
这个库 https://github.com/gelitenight/WaveView 也做同样的事情,但功能更多。你可以:
- 水平移动波形。
- 设置水位。
- 设置波浪的垂直尺寸。
- 设置波浪的水平尺寸。