Skip to content

sinhpn92/Android-GlidePalette

Repository files navigation

Android GlidePalette

Use palette for background view and text by glide v4 image loader. It's rewrite by kotlin.

Alt sample

Current Version: 0.1.0

Sample

Glide.with(this).load(url)
         .listener(GlidePalette.with(url)
               .use(GlidePalette.Profile.MUTED_DARK)
                   .intoBackground(textView)
                   .intoTextColor(textView)

               .use(GlidePalette.Profile.VIBRANT)
                    .intoBackground(titleView, GlidePalette.Swatch.RGB)
                    .intoTextColor(titleView, GlidePalette.Swatch.BODY_TEXT_COLOR)
                    .crossfade(true)
         );
         .into(imageView);

Installation

Add it in your root build.gradle at the end of repositories:

allprojects {
         repositories {
                  ...
                  maven { url 'https://jitpack.io' }
         }
}

Add the dependency:

dependencies {
        implementation 'com.github.sinhpn92:Android-GlidePalette:$version'
}

First, init GlidePalette with an Url

GlidePalette.with(url)

Palettes

You can successively use following Palettes :

  • Palette.VIBRANT
  • Palette.VIBRANT_DARK
  • Palette.VIBRANT_LIGHT
  • Palette.MUTED
  • Palette.MUTED_DARK
  • Palette.MUTED_LIGHT
.use(GlidePalette.Profile.MUTED_DARK)

Each time you call "use" the next modification will follow this Profile

.use(GlidePalette.Profile.MUTED_DARK)
    //next operations will use Profile.MUTED_DARK
.use(GlidePalette.Profile.VIBRANT)
    //next operations will use Profile.VIBRANT

Swatches

With the following Swatches

  • RGB
  • TITLE_TEXT_COLOR
  • BODY_TEXT_COLOR

Targets

Into Backgrounds

.intoBackground(view)
.intoBackground(view,Swatch.RGB)

And TextView Color

.intoTextColor(textView)
.intoTextColor(textView,Swatch.TITLE_TEXT_COLOR)

with optional Background Crossfade effect

.crossfade(true)
    // will use default 300ms crossfade
.crossfade(true, 1000)
    // specify own crossfade speed in ms

CallBack

Or simply return into CallBack

.intoCallBack(
    object : BitmapPalette.CallBack {
         override fun onPaletteLoaded(@Nullable palette: Palette?) { //specific task

         }
})