Android中状态栏中的动画

我是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(); } } 

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

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类的实例。 匿名声明不允许您在需要时更改其值。