Android使用Palette获取图片主色调
16lz
2021-01-24
Palette简介
Palette是Android中的调色板,我们可以通过传递一个Bitmap来获取一个颜色列表,可以通过类中封装的分析算法来获取其中的
- Vibrant(充满活力的)
- Vibrant dark(充满活力的黑)
- Vibrant light(充满活力的亮)
- Muted(柔和的)
- Muted dark(柔和的黑)
Muted lighr(柔和的亮)
也可以获取一个颜色列表,自己写算法挑选你想获取的颜色
官方APi提供两种方式
// Synchronous Palette p = Palette.from(bitmap).generate(); // Asynchronous Palette.from(bitmap).generate(new PaletteAsyncListener() { public void onGenerated(Palette p) { // Use generated instance } }); 使用的时候引入 compile 'com.android.support:palette-v7:22.2.0' 使采用异步方式进行引用 Palette.from(bitmap).generate(new Palette.PaletteAsyncListener() { @Override public void onGenerated(Palette palette) { Palette.Swatch swatch = palette.getMutedSwatch(); //Palette.Swatch swatch = palette.getVibrantSwatch(); //Palette.Swatch swatch = palette.getDarkMutedSwatch(); //Palette.Swatch swatch = palette.getDarkVibrantSwatch(); //Palette.Swatch swatch = palette.getLightMutedSwatch(); //Palette.Swatch swatch = palette.getLightVibrantSwatch(); if (swatch != null) { view.setBackgroundColor(swatch.getRgb()); } else { Log.e("smallsoho", "swatch为空"); } } });
github上有提供和图片加载结合的library使用起来比较简单
PicassoPalette
GlidePalette
参考资料
http://smallsoho.com/2015/07/22/Android-Palette.htmlhttp://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/1111/1955.html
更多相关文章
- Android(安卓)Material Design之Snackbar
- Android(安卓)ANR介绍与避免
- Android实现两次点击返回键提示退出
- AndroidStudio打包及引用aar - Android
- Android服务器通信的几种方式详解
- Android提高第十八篇之自定义PopupWindow实现的Menu(TabMenu)
- Android绘图之LinearGradient线性渐变(9)
- android页面跳转的几种方式
- android ListView 设定背景图后拖动时整体背景变黑的解决方式