Quiero implementar la misma función que podemos ver en WhatsApp, mientras veo el perfil de una persona, el color de la barra de estado cambia según el color de la imagen.
3 respuestas
Se llama Pallete, usa la siguiente función, solo pasa tu imagen de mapa de bits
private void setUpPalette(Bitmap bitmap) {
// you passed your Bitmap image;
Palette.from(bitmap).
generate(new Palette.PaletteAsyncListener() {
@Override
public void onGenerated(Palette palette) {
if (palette != null) {
//default color is yellow
// set the color to toolbar, whatever
int extColor = palette.getVibrantColor(ContextCompat.getColor(MainActivity.this, R.color.yellow));
if (getWindow() != null) {
getWindow().setStatusBarColor(ContextCompat.getColor(this, extColor));
}
} else {
if (getWindow() != null) {
getWindow().setStatusBarColor(ContextCompat.getColor(this, R.color.fail_safe));
}
}
}
});
}
Debe usar la Biblioteca de paletas para obtener el color dominante:
// Generate palette asynchronously and use it on a different
// thread using onGenerated()
public void changeStatusBarColorAsync(Bitmap bitmap) {
Palette.from(bitmap).generate(new PaletteAsyncListener() {
public void onGenerated(Palette p) {
// Use generated instance
Palette.Swatch vibrant = p.getVibrantSwatch();
int color = ContextCompat.getColor(getContext(),R.color.default_title_background);
if(vibrant != null){
color = vibrantSwatch.getTitleTextColor();
}
getWindow().setStatusBarColor(ContextCompat.getColor(this, color));
}
});
}
https://stackoverflow.com/a/28145358/9186913 encontrará el color más vibrante en la imagen y podrá cambie getWindow (). setStatusBarColor (getResources (). getColor (R.color.color));
Nuevas preguntas
android
Android es el sistema operativo móvil de Google, que se utiliza para programar o desarrollar dispositivos digitales (teléfonos inteligentes, tabletas, automóviles, televisores, ropa, vidrio, IoT). Para temas relacionados con Android, use etiquetas específicas de Android, tales como intención de Android, actividad de Android, adaptador de Android, etc. Para preguntas que no sean de desarrollo o programación, pero relacionadas con el marco de Android, use este enlace: https: // android.stackexchange.com.