2013-06-30 70 views
1

我的應用程序顯示電池電量..我有三個電池圖像;一個綠色,一個黃色,另一個紅色。當電池電量發生變化時,我想在圖像視圖中放置這些圖像。例如:當電池電量爲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電池電量。看到該文檔here

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

float batteryPct = level/(float)scale; 

現在從取決於batterPct的代碼中設置特定的圖像

,並監測變化使用以下

聲明一個BroadcastReceiver

<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

是的,但如何插入圖像,並在batteryPct達到該級別時更改它? (100%,50%和20%)?所有由java我認爲。 –

+0

查看已更新的答案 – stinepike

+0

謝謝,並插入圖像? –