2013-06-30 3 views
1

내 응용 프로그램에 배터리 잔량 표시 .. 3 개의 배터리 이미지가 있습니다. 하나는 초, 하나는 노랑, 또 하나는 빨강입니다. 배터리 잔량이 바뀌면 이미지를 볼 수 있습니다. 예를 들어, 배터리가 100 %이면 녹색 배터리가, 노란색은 50 %, 빨간색은 20 %입니다. 내가 어떻게 해? 지금 나는 단순히이 같은리스트 뷰에서 정적 이미지를 가지고 :배터리 잔량에 따라 이미지 변경 Android

  <ImageView 
       android:id="@+id/BatteryInfoimage" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:contentDescription="image" 
       android:adjustViewBounds="true" 
       android:src="@drawable/battery" 
      /> 

감사

답변

1

당신이 BatteryManager를 사용하여 배터리 수준을 얻을 수 있습니다. batterPct의 따라 코드에서 이제 문서 here

int level = batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1); 
int scale = batteryStatus.getIntExtra(BatteryManager.EXTRA_SCALE, -1); 

float batteryPct = level/(float)scale; 

참조는 특정 이미지

그리고 변화가 브로드 캐스트 리시버를

<receiver android:name=".PowerConnectionReceiver"> 
    <intent-filter> 
    <action android:name="android.intent.action.ACTION_POWER_CONNECTED"/> 
    <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED"/> 
    </intent-filter> 
</receiver> 

내에서 선언 다음

을 사용하여 모니터에 설정 연결된 BroadcastReceiver 구현에서 이전 단계에서 설명한대로 현재 충전 상태 및 메서드를 추출 할 수 있습니다.

public class PowerConnectionReceiver extends BroadcastReceiver { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     int status = intent.getIntExtra(BatteryManager.EXTRA_STATUS, -1); 
     boolean isCharging = status == BatteryManager.BATTERY_STATUS_CHARGING || 
          status == BatteryManager.BATTERY_STATUS_FULL; 

     int chargePlug = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1); 
     boolean usbCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_USB; 
     boolean acCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_AC; 
    } 
} 
+0

네, 그렇지만 이미지를 삽입하고 배터리 팩이 그 수준에 도달하면 어떻게 바꿀 수 있습니까? (100 %, 50 % 및 20 %)? 모든 자바에 의해 생각합니다. –

+0

업데이트 된 답변보기 – stinepike

+0

감사합니다. 이미지를 삽입 하시겠습니까? –