2014-02-04 7 views
0

Я создаю приложение для Android, в котором я хочу показать текущий статус батареи. Я искал и нашел код для состояния батареи, но отображает состояние батареи в текстовой форме уровень заряда батареи 50% .Но я хочу показать его как индикатор, как показано ниже. Как я могу это сделать. , и я также хочу, чтобы состояние батареи автоматически менялось при увеличении или уменьшении его заряда.Показывать состояние батареи и автоматически меняться при увеличении или уменьшении

код состояния батареи

package com.example.androidbatterypercentage; 

    import android.os.BatteryManager; 
    import android.os.Bundle; 
    import android.app.Activity; 
    import android.content.BroadcastReceiver; 
    import android.content.Context; 
import android.content.Intent; 
import android.content.IntentFilter; 
import android.view.Menu; 
import android.widget.TextView; 

    public class MainActivity extends Activity { 
    private TextView batteryPercent; 
    private void getBatteryPercentage() { 
    BroadcastReceiver batteryLevelReceiver = new BroadcastReceiver() { 
     public void onReceive(Context context, Intent intent) { 
     context.unregisterReceiver(this); 
     int currentLevel = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1); 
     int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1); 
     int level = -1; 
     if (currentLevel >= 0 && scale > 0) { 
      level = (currentLevel * 100)/scale; 
      } 
      batteryPercent.setText("Battery Level Remaining: " + level + "%"); 
     } 
    }; 
    IntentFilter batteryLevelFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED); 
    registerReceiver(batteryLevelReceiver, batteryLevelFilter); 
} 


    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     batteryPercent = (TextView) this.findViewById(R.id.batteryLevel); 
     getBatteryPercentage(); 
    } 


    public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.activity_main, menu); 
    return true; 
    } 

    } 

XML файл

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:tools="http://schemas.android.com/tools" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     tools:context=".MainActivity"> 


    <TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" 
    android:layout_centerVertical="true" 
    android:text="@string/hello_world" /> 

    </RelativeLayout> 
+1

В чем проблема? –

+0

Где находится изображение? –

ответ

0

Привет есть ссылка образец для текущего состояния батареи.

1) Display информация батареи андроида устройства

2) Get Устройство Информация о батарее

Вы можете использовали процесс в thread, TimerTask или services получить автоматически

Я надеюсь, что эта помощь

0

Если вы хотите получать уведомления о любых изменениях батареи, вы должны создать BroadcastReceiver и lis десять до ACTION_BATERY_CHANGED намерения. Вы можете изменить свой TextView или изображение соответственно.

 Смежные вопросы

  • Нет связанных вопросов^_^