Je veux utiliser la bibliothèque Palette pour choisir une couleur de l'image et ajouter à Vignettes en recyclerview mais mon code est fonctionne pas, je l'utilise aussi glid pour l'image d'affichage du serveur, comment peut résoudre mon problème ou utiliser Palette pour choisir une couleur dans recyclerview? Merci si vous me guider ou me donner un codecomment utiliser la bibliothèque Palette recyclerview
Mon code
public class adapter_zakeran extends
RecyclerView.Adapter<adapter_zakeran.ItemViewHolder> {
private Context mcontax;
private ArrayList<Item_zakeran> itemlist;
Item_zakeran item;
public adapter_zakeran(Context context, ArrayList<Item_zakeran> itemlist) {
this.mcontax = context;
this.itemlist = itemlist;
}
@Override
public adapter_zakeran.ItemViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
View view = inflater.from(parent.getContext())
.inflate(R.layout.cardview_list_madahi, parent, false);
adapter_zakeran.ItemViewHolder itemViewHolder = new adapter_zakeran.ItemViewHolder(view);
return itemViewHolder;
}
@Override
public void onBindViewHolder(final adapter_zakeran.ItemViewHolder holder, int position) {
item = itemlist.get(position);
final int ids = item.getId();
holder.namemadah.setText(item.getName());
Glide.with(holder.imagelist.getContext())
.load(item.getImage())
.asBitmap()
.centerCrop()
.into(new SimpleTarget<Bitmap>(1000,1000) {
@Override
public void onResourceReady(Bitmap bitmap, GlideAnimation glideAnimation) {
holder.imagelist.setImageBitmap(bitmap); // Possibly runOnUiThread()
Palette.from(bitmap).generate(new Palette.PaletteAsyncListener() {
@Override
public void onGenerated(Palette palette) {
Palette.Swatch darkVibrant = palette.getDarkVibrantSwatch();
if (darkVibrant != null) {
holder.cvItem.setBackgroundColor(darkVibrant.getRgb());
holder.namemadah.setBackgroundColor(darkVibrant.getTitleTextColor());
} else {
//dark vibrant colors don't exist, you can try to find other swatches
//or set a default color..
}
}
});
}
});
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent in = new Intent(v.getContext(), zakeran_any_madah.class);
in.putExtra("speaker_id", ids);
v.getContext().startActivity(in);
}
});
}
@Override
public int getItemCount() {
if (itemlist != null) {
return itemlist.size();
}
return 0;
}
public static class ItemViewHolder extends RecyclerView.ViewHolder {
public CardView cvItem;
public TextView namemadah;
public ImageView imagelist;
public ItemViewHolder(View itemView) {
super(itemView);
cvItem = (CardView) itemView.findViewById(R.id.cardView);
namemadah = (TextView) itemView.findViewById(R.id.namemadah);
imagelist = (ImageView) itemView.findViewById(R.id.imagelist);
}
}
}
erreur
FATAL EXCEPTION: main
Process: com.example.kaveh.zakerinekordestan, PID: 28896 java.lang.NullPointerException
at com.example.kaveh.zakerinekordestan.adapter_zakeran$1$1.onGenerated(adapter_zakeran.java:81)
at android.support.v7.graphics.Palette$Builder$1.onPostExecute(Palette.java:873)
at android.support.v7.graphics.Palette$Builder$1.onPostExecute(Palette.java:860)
at android.os.AsyncTask.finish(AsyncTask.java:632)
at android.os.AsyncTask.access$600(AsyncTask.java:177)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:645)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5001)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
at dalvik.system.NativeStart.main(Native Method)
Merci je veux changer la couleur de fond de votre code est Vignettes vigueur à proximité de holder.cvItem.setBackgroundColor (darkVibrant.getRgb()); –
Je ne peux pas vous comprendre ... btw j'ai édité la réponse un peu en utilisant les bonnes méthodes (à mon avis). Vous devez utiliser mon code et définir un point de débogage sur la propriété 'darkVibrant' pour être sûr qu'il n'est pas nul après l'avoir extrait de l'image. Utilisez 'setCardBackgroundColor()' à la place – MatPag
Je suis édité mon code –