Как установить цвет панели действий с помощью библиотеки палитр? - PullRequest
0 голосов
/ 06 ноября 2019

У меня есть растровое изображение, которое я использую для отображения изображения из FireBase в виде изображения. Я хочу, чтобы и строка состояния, и цвета панели действий были скорректированы с помощью ярких цветов изображений из базы данных. Я искал, как это сделать, и у меня есть следующий код ниже

      Palette.from(myBitmap).generate(new Palette.PaletteAsyncListener() {
        @Override
        public void onGenerated(Palette palette) {

              android.app.ActionBar bar=setBackgrounddrawable(palette.getVibrantColor(getResources().getColor(R.color.colorPrimary)));
             getWindow().setStatusBarColor(palette.getVibrantColor(getResources().getColor(R.colorPrimary)));
        }
    });

Но я получаю ошибку в строке кода для строки действия get, говорящую «установить фон для рисования нельзя применить к int». Когда яудалить строку кода для установки цвета панели действий, только цвет строки состояния установлен, а не панель действий, как я могу также установить цвет панели действий?

Ответы [ 2 ]

1 голос
/ 06 ноября 2019

Как видите, setBackgroundDrawable() получает параметр типа Drawable,

, но вы передаете значение Int Color, тогда вы получите ошибку.


Я не проверяю это, но Вы можете попробовать это с:

setBackgroundDrawable(new ColorDrawable(palette.getVibrantColor(getResources().getColor(R.color.colorPrimary))));

0 голосов
/ 06 ноября 2019

Может быть, будет легко использовать панель инструментов?

activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/container"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <include
        layout="@layout/app_bar_main"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <androidx.viewpager.widget.ViewPager
        android:id="@+id/mainPager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:layout_margin="4dp"
        />

</LinearLayout>

app_bar_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".activities.MainActivity">

    <com.google.android.material.appbar.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/AppTheme.AppBarOverlay">

        <androidx.appcompat.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="@color/colorPrimary"
            app:popupTheme="@style/AppTheme.PopupOverlay">

            <LinearLayout
                android:orientation="vertical"
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

                <ImageView
                    android:layout_width="150dp"
                    android:layout_height="match_parent"
                    android:src="@drawable/logo_vector_dark"
                    />

            </LinearLayout>

        </androidx.appcompat.widget.Toolbar>

    </com.google.android.material.appbar.AppBarLayout>

</androidx.coordinatorlayout.widget.CoordinatorLayout>

Настройка панели инструментов в onCreate ofАктивность:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);

Изменить цвет:

Palette.from(myBitmap).generate(new Palette.PaletteAsyncListener() {
    @Override
    public void onGenerated(Palette palette) {      
        toolbar.setBackgroundColor(palette.getVibrantColor(getResources().getColor(R.color.colorAccent)));
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...