Comment changer la couleur de la barre d'état de manière dynamique dans Android en fonction de l'image de premier plan ?


Le Sohan

Je souhaite implémenter la même fonctionnalité que celle que nous pouvons voir dans WhatsApp, tout en voyant le profil d'une personne, la couleur de la barre d'état change en fonction de la couleur de l'image.

pasTdar

Cela s'appelle Pallete, utilisez la fonction ci-dessous, passez simplement votre image bitmap

  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));
                                                    }
                    }
                }
            });
}

Articles connexes