介绍
Palette
可以提取图片的颜色,我们可以把这些颜色赋给文字,让文字跟随图片的颜色,而不是固定的白色。
android.support.v7.graphics.Palette
名词解释:
Swatch: 样品
Vibrant:有活力的;
Dark:暗淡的;
Muted:温和的;
Light:明亮的;
Dominant:主要的
步骤
- 获取 Bitmap
- 由bitmap获取Palette(同步或异步)
- 获取switch+获取颜色值+设置给文字等
获取 Bitmap
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher);
由bitmap获取Palette
同步:
Palette palette = Palette.from(bitmap).generate();
异步:
Palette.from(bitmap).generate(new Palette.PaletteAsyncListener() {
@Override
public void onGenerated(Palette palette) {
}
});
Palette.Swatch swatch = palette.getVibrantSwatch();
int rgb = swatch.getRgb();
int titleTextColor = swatch.getTitleTextColor();
tv.setBackgroundColor(rgb);
tv.setTextColor(titleTextColor);
switch有多种
List<Palette.Swatch> swatches = palette.getSwatches();
Palette.Swatch dominantSwatch = palette.getDominantSwatch();
Palette.Swatch mutedSwatch = palette.getMutedSwatch();
Palette.Swatch vibrantSwatch = palette.getVibrantSwatch();
Palette.Swatch darkMutedSwatch = palette.getDarkMutedSwatch();
Palette.Swatch darkVibrantSwatch = palette.getDarkVibrantSwatch();
Palette.Swatch lightMutedSwatch = palette.getLightMutedSwatch();
Palette.Swatch lightVibrantSwatch = palette.getLightVibrantSwatch();
其它
使用Palette类提取图片的颜色信息
Demo: https://git.oschina.net/MaterialDisign/Palette01.git