Android: изображения в ActionBar, которые работают как индикатор выполнения для уровня заряда батареи
В настоящее время у меня есть индикатор выполнения, который создается с помощью следующего кода в Android. У меня есть 4 определенных уровня прогресса. Есть ли способ заставить эту работу с 4 картинками вместо индикатора выполнения? (т.е. аккумулятор показывает разные уровни заряда?) Я также хотел бы, чтобы это отображалось на панели действий приложения в правом углу (в настоящее время в основном корпусе). Это пытается отследить уровень мощности устройства Bluetooth, к которому я подключаюсь. Любая помощь высоко ценится.
public void Proc_Show_Level()
{
getMainActivity().runOnUiThread(new Runnable() {
public void run() {
int lev, col;
String img;
switch (Power_Level) {
case 1:
case 2:
lev = 30;
col = Color.RED;
break;
case 3:
lev = 60;
col = Color.YELLOW;
break;
case 4:
lev = 100;
col = Color.GREEN;
break;
default:
lev = 100;
col = Color.GRAY;
break;
}
mProgress.getProgressDrawable().setColorFilter(
col, android.graphics.PorterDuff.Mode.SRC_IN);
mProgress.setScaleY(3f);
mProgress.setProgress(lev);
}
}
);
}
Ниже то, что я пытаюсь до сих пор, но я понятия не имею, если это правильный путь для этого.
Код, который у меня есть в Mainactivity.java для моего устройства с аккумулятором Bluetooth, в настоящее время приведен ниже, где я пытаюсь назначить правильное изображение в зависимости от уровня заряда аккумулятора переменной resImage2. Строки, на которые я ссылаюсь, являются просто ссылками на изображения, которые я хочу использовать в папке drawable, например string.bat_green = "@drawable/short_bat_green"
public String resImage2;
@Override
protected void onCreate(Bundle savedInstanceState) {
if (bat_level.equals("Full")) {
resImage2 = getString(R.string.bat_green);
if (bat_level.equals("Yellow")) {
resImage2 = getString(R.string.bat_yel);
if (bat_level.equals("Red")) {
resImage2 = getString(R.string.bat_red);
if (bat_level.equals("Critical")) {
resImage2 = getString(R.string.bat_grey);
}
}
}
}
Так что теперь я думаю, что мне нужно найти способ передать любое resImage2 в код, который у меня есть в menu_main, чтобы заменить строку "android:icon = "@drawable/short_bat_grey"информацией в resImage2. Но в настоящее время я понятия не имею, как сделать это, если кто-нибудь может помочь, пожалуйста.
<item
android:id="@+id/bat_empty"
android:title="bat_r"
android:icon = "@drawable/short_bat_grey"
app:showAsAction="ifRoom"
/>