Android中状态栏中的动画

时间:2012-02-09 18:30:16

标签: java android android-animation power-management

我是Android新手。我想在手机中制作一个电池充电动画,例如,在屏幕的右上角,一个小图标在充电时上下移动并停在当前电池百分比上。

到目前为止,在我的代码中,我已经能够让它移动,但它永远不会停止。

我想要的是动画在没有充电时停止或停止在当前电池百分比上。

这是动画中的代码:

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.batteryinfo);

        ImageView batteryImage = (ImageView) findViewById(R.id.BatteryImage);
        batteryImage.setBackgroundResource(R.drawable.ic_battery_animation);

        BatteryAnimation = (AnimationDrawable) batteryImage.getBackground();
        batteryImage.post(new Starter());

        textBatteryLevel = (TextView) findViewById(R.id.batterylevel_text);

        registerBatteryLevelReceiver();
    }

    class Starter implements Runnable {

        public void run() {
            BatteryAnimation.start();
        }

    }

到目前为止,我可以获得电池状态,插头类型和电池的运行状况。

1 个答案:

答案 0 :(得分:2)

Starter类应该实现也停止逻辑。 类似的东西:

class Starter implements Runnable {
    boolean stopConditionMet = false;
    public void run() {
        BatteryAnimation.start();
        try {
         while (!stopConditionMet) { Thread.sleep(500); } 
        } catch (InterruptedException e) {}
         BatteryAnimation.stop();

    }
    public void stop() { stopConditionMet=true; }

}

(而不是忙碌等待你可以使用wait() - notifyAll()方案。上面的例子,如果为了简单起见。)

..并且您需要在您的Activity中保留Starter类的实例。匿名声明不允许您在需要时更改其值。