Android: изображения в ActionBar, которые работают как индикатор выполнения для уровня заряда батареи - PullRequest
0 голосов
/ 30 августа 2018

В настоящее время у меня есть индикатор выполнения, созданный с помощью следующего кода в 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. Строки, на которые я ссылаюсь, - это просто ссылки на изображения, которые я хочу использовать в папке для рисования, например 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"
    />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...