studio personalizar paleta oreo ocultar notificaciones iconos estado como colores color cambiar barra android material-design android-collapsingtoolbarlayout

personalizar - paleta de colores android studio



Diseño de material Android: cómo cambiar el color de fondo de la barra de herramientas después de que Colapsar herramienta Barra de cálculo se contrae (6)

Una vez que el usuario se desplaza hacia abajo en la pantalla, la imagen en CollapsingToolbarLayout desaparece y se queda con una barra de herramientas con el botón Atrás, el título del contenido y el menú de configuración. Quiero saber cómo cambiar el color de fondo de esa barra de herramientas solo cuando está en estado ''colapsado''.

La acción a la que me refiero es similar a esta, donde el color de fondo de la barra de herramientas cambia a verde:

Debajo de CollapsingToolbarLayout tengo un NestedScrollView con CardViews


Primero eliminar

app:contentScrim="?attr/colorPrimary">

de CollapsingToolbarLayout

Añadir biblioteca

compile ''com.android.support:palette-v7:23.2.1''

Y agrega el código siguiente en el código de java

Bitmap bitmap = BitmapFactory.decodeResource(getApplicationContext().getResources(), R.drawable.ny); Palette.generateAsync(bitmap, new Palette.PaletteAsyncListener() { @Override public void onGenerated(Palette palette) { Palette.Swatch vibrant = palette.getVibrantSwatch(); int mutedColor = palette.getVibrantSwatch().getRgb(); if (vibrant != null) { // If we have a vibrant color // update the title TextView collapseToolbar.setBackgroundColor(mutedColor); // mutedColor = palette.getMutedColor(R.attr.colorPrimary); collapseToolbar.setStatusBarScrimColor(palette.getDarkMutedColor(mutedColor)); collapseToolbar.setContentScrimColor(palette.getMutedColor(mutedColor)); } } });


Puede usar un AppBarLayout de desplazamiento de AppBarLayout y cambiar los atributos de CollapsingTollbar acuerdo con el comportamiento deseado.

appBarLayout.addOnOffsetChangedListener { _, verticalOffSet -> if (Math.abs(verticalOffSet) == appBarLayout.totalScrollRange) { //Collapsed toolBar.setBackgroundDrawable(ContextCompat.getDrawable(this, R.drawable.last_revolut_gradient)) } else { //Expanded toolBar.setBackgroundColor(ContextCompat.getColor(this, android.R.color.transparent)) } }


Simplemente use el atributo XML CollapsingToolbarLayout contentScrim para establecer el color de fondo de la Toolbar cuando esté en modo collapsed .

app:contentScrim="YOUR_TOOLBAR_COLOR"

Aquí hay un ejemplo:

<android.support.design.widget.CollapsingToolbarLayout android:id="@+id/collapsing_toolbar" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" app:contentScrim="?attr/colorPrimary" app:layout_scrollFlags="scroll|exitUntilCollapsed"> <ImageView android:id="@+id/img_group_photo" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" android:scaleType="centerCrop" app:layout_collapseMode="parallax" /> <android.support.v7.widget.Toolbar android:id="@+id/anim_toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:layout_collapseMode="pin" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> </android.support.design.widget.CollapsingToolbarLayout>

Espero que esto ayude ~


Tal vez lo que has estado buscando es esto:

myCollapsingToolbar.setContentScrimColor(getResources().getColor(R.color.my_color_id));

Funcionó para mí y cambió el color de la barra de herramientas collapsing una vez que se colapsó para ayudarme a ajustar el color principal de una imagen que se mostraba cuando la barra de herramientas collapsing estaba a escala completa. ¡Con esto, el color obviamente puede cambiarse programáticamente!

Sé que llego tarde, pero espero que pueda ayudar.


Creo que estás después de la app:contentScrim .

<android.support.design.widget.CollapsingToolbarLayout ... app:contentScrim="?attr/colorPrimary"> <!-- Toolbar and ImageView here --> </android.support.design.widget.CollapsingToolbarLayout>


Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.header); Palette.from(bitmap).generate(new Palette.PaletteAsyncListener() { @SuppressWarnings("ResourceType") @Override public void onGenerated(Palette palette) { Palette.Swatch vibrant = palette.getVibrantSwatch(); if (vibrant != null) { collapsingToolbar.setBackgroundColor(getResources().getColor(R.color.cpb_blue)); collapsingToolbar.setStatusBarScrimColor(getResources().getColor(R.color.cpb_blue)); collapsingToolbar.setContentScrimColor(getResources().getColor(R.color.cpb_blue)); } } });