如何在Android图像中获得最突出的颜色

如何在Android图像中获得最突出的颜色,android,android-collapsingtoolbarlayout,Android,Android Collapsingtoolbarlayout,我注意到Whatsapp Android有一个功能,collasingToolbar获取用户图像最突出的颜色,并将其设置为工具栏颜色,我尝试转换图像并获取最突出的颜色,但转换速度太慢,Whatsapp一眨眼就完成了,有人能告诉我怎么做吗?最后,我如何在默认情况下将我的折叠工具栏设置为在活动刚刚打开时折叠,我注意到默认情况下它会展开,但我希望它折叠,然后如果用户愿意,他们可以通过滚动来展开它,提前感谢。我无法说明WhatsApp使用的策略,但支持库确实提供了'com.android.support

我注意到Whatsapp Android有一个功能,
collasingToolbar
获取用户图像最突出的颜色,并将其设置为工具栏颜色,我尝试转换图像并获取最突出的颜色,但转换速度太慢,Whatsapp一眨眼就完成了,有人能告诉我怎么做吗?最后,我如何在默认情况下将我的
折叠工具栏
设置为在活动刚刚打开时折叠,我注意到默认情况下它会展开,但我希望它折叠,然后如果用户愿意,他们可以通过滚动来展开它,提前感谢。

我无法说明WhatsApp使用的策略,但支持库确实提供了
'com.android.support:palette-v7:23.1.1'
,它可以为您做到这一点

Palette.generate(Bitmap toGetColorsFrom)
Palette.generate(Bitmap toGetColorsFrom, int maximumPaletteSize)
Palette.generateAsync(Bitmap toGetColorsFrom, PaletteAsyncListener listener)
Palette.generateAsync(Bitmap toGetColorsFrom, int maximumPaletteSize, PaletteAsyncListener listener)
异步方法需要
palete.PaletteAsyncListener
才能将结果通知您

从以下任一方法接收到
调色板
对象后,可以按如下方式设置工具栏背景色:

Palette palette = Palette.generate(myBitmap);
Palette.Swatch swatch = palette.getVibrantSwatch();
toolbar.setBackgroundColor(swatch.getRgb());
请注意,
getVibrantSwatch()
是获取一组颜色的一种方法。您还可以使用:

Palette.getVibrantSwatch()
Palette.getDarkVibrantSwatch()
Palette.getLightVibrantSwatch()
Palette.getMutedSwatch()
Palette.getDarkMutedSwatch()
Palette.getLightMutedSwatch()
供颜色使用

要在活动打开时将折叠工具栏设置为关闭,可以在活动中使用进行设置

AppBarLayout布局=(AppBarLayout)findViewById(R.id.appbarID);
layout.setExpanded(假)//这里appbarID是包含折叠工具栏的xml文件中appbarlayout的id


希望能有所帮助。

我的折叠工具栏中没有
setExpanded
方法在appbarlayout而不是collpasingtoolbar中调用该方法。好的,也许我正在使用它,这是我的代码mParent=(CoordinatorLayout)findViewById(R.id.parentCord);最终工具栏=(工具栏)findViewById(R.id.anim_工具栏);CollasingToolbar=(CollasingToolbarLayout)findViewById(R.id.Collasing_工具栏);如何折叠折叠工具栏我得到了它谢谢,但它退出缓慢,我首先看到后面的图像,否则谢谢。