2012-02-09 3 views
1

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

    } 

는 지금까지 내가 배터리 상태, 플러그 형을받을 수 있으며, 배터리의 건강 :

여기 내 애니메이션의 코드입니다.

답변

2

스타터 클래스도 정지 논리를 구현해야합니다. 뭔가 같은 :

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; } 

} 

(대신 통화 중 대기 당신은 대기하여이 작업을 수행 할 수 있습니다() -가는 notifyAll() 방식 위의 예제를 단순화하기위한 경우.).

.. 당신은 Activity 내에 Starter 클래스의 인스턴스를 유지해야합니다. 익명으로 신고하면 필요할 때 값을 변경할 수 없습니다.

+0

아. 도움 주셔서 감사합니다. :) –

관련 문제