我想在Android中使用Palette库。我也在使用Picasso将图像加载到imageview中。有没有办法知道Picasso何时加载图像,以便我可以从调色板中的图像中获取颜色?
Picasso.with(context).load("http://urlForImage").placeholder(R.drawable.place_holder_image).into(imageView);
Palette.generateAsync(BITMAP, new Palette.PaletteAsyncListener() {
@Override
public void onGenerated(Palette palette) {
//do stuff with palette...
}
});
答案 0 :(得分:1)
使用picassoPalette第三方库并将其导入您的项目,然后使用以下代码:
try {
ContextWrapper cw = new ContextWrapper(OtherUserProfileScreenActivity.this);
Picasso.with(this).load(image + ".jpg").placeholder(R.drawable.ic_loading).error(R.drawable.ic_error).into(imageView, PicassoPalette.with(Image + ".jpg", imageView).use(PicassoPalette.Profile.MUTED_DARK).intoCallBack(new BitmapPalette.CallBack() {
@Override
public void onPaletteLoaded(Palette palette) {
int mutedColor = palette.getMutedColor(R.attr.colorPrimary);
mCollapsingToolbarLayout.setContentScrimColor(mutedColor);
}
}));
} catch (OutOfMemoryError e) {
e.printStackTrace();
System.gc();
}