液位动画(电池医生)

时间:2015-05-18 16:12:58

标签: java android animation opengl-es graphics2d

我想知道如何在android中制作这种动画(在Battery Doctor应用程序中也一样)。

Animation from Battery Doctor

我找到了一种方法,使用两个绿色图像,其中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);

1 个答案:

答案 0 :(得分:3)

我终于找到了一个库:WaveView

https://github.com/john990/WaveView

修改

这个库https://github.com/gelitenight/WaveView也有更多功能做同样的事情。你可以:

  • 水平移动波浪。
  • 设定水位。
  • 设置wave的垂直大小。
  • 设置wave的水平尺寸。