首先,我从未使用过Palette,当我想开始使用它时,我发现所有教程和博客都谈论v21,而不是v22。
我的问题是我有一个Swatch(在swatch数组[palette.getSwatches()。get(0)]的位置0中)始终返回黑色(标题和正文),这是我正在使用的示例,也许这是错误的,但我要复制此https://developer.android.com/reference/android/support/v7/graphics/Palette.html
Palette.from(BitmapFactory.decodeResource(getResources(),R.drawable.prueba2)).generate(new Palette.PaletteAsyncListener() {
@Override
public void onGenerated(Palette palette) {
text.setTextColor(palette.getVibrantSwatch().getBodyTextColor());
text.setBackgroundColor(palette.getVibrantSwatch().getTitleTextColor());
}
});
当我启动这个应用程序(我有一个带有textView和ImageView的活动)时,它关闭并说
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.support.v7.graphics.Palette$Swatch.getBodyTextColor()' on a null object reference
at com.alfondo.projectpalette.MainActivity.onCreate(MainActivity.java:33)"
编辑:这是我的绘画。 (我无法发布imgs)http://imgur.com/YGV9xVS
最佳答案
首先创建图像的位图,然后使用毕加索调色板获取图像的颜色并将其设置为可折叠工具栏
// get bitmap of image and generate toolbar color by passing bitmap to palette
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.nature);
Palette.from(bitmap).generate(new Palette.PaletteAsyncListener() {
// get muted color from bitmap using palette and set this to collapsible toolbar
@Override
public void onGenerated(Palette palette) {
collapsingToolbarLayout.setContentScrimColor(palette.getMutedColor(getResources().getColor(R.color.colorPrimary)));
collapsingToolbarLayout.setStatusBarScrimColor(palette.getMutedColor(getResources().getColor(R.color.colorPrimaryDark)));
}
});
关于java - 调色板(Android支持v22)不会生成色板,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30189086/