大佬教程收集整理的这篇文章主要介绍了android – 在RecyclerView中更改单个drawable的颜色将更改所有drawable,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
这是我的适配器:
public class ReportAdapter extends RecyclerView.Adapter<ReportAdapter.ReportViewHolder> { DataBaseHelper dataBase; private LayoutInflater inflater; List<ChoosedSubject> data = Collections.emptyList(); Context context; OnItemClickListener itemClickListener; public ReportAdapter(Context context,List<ChoosedSubject> data,OnItemClickListener itemClickListener) { inflater = LayoutInflater.from(context); this.data = data; this.context = context; this.itemClickListener = itemClickListener; } @Override public ReportViewHolder onCreateViewHolder(ViewGroup parent,int viewTypE) { View view = inflater.inflate(R.layout.report_cell,parent,falsE); ReportViewHolder holder = new ReportViewHolder(view); dataBase = new DataBaseHelper(context); return holder; } //Set Data inside RecyclerView @Override public void onBindViewHolder(ReportViewHolder holder,int position) { ChoosedSubject current = data.get(position); Grades grades = new Grades(context); resources resources = context.getresources(); int iconColor; Drawable icon; icon = ContextCompat.getDrawable(context,dataBase.getSpecificChoosedSubjectAppendingToName(current.getName()).get(0).getChooseDicon()); if (dataBase.getSpecificChoosedSubjectAppendingToName(current.getName()).get(0).getChooseDicon() != R.drawable.subject_default) { iconColor = resources.getColor(dataBase.getSpecificChoosedSubjectAppendingToName(current.getName()).get(0).getChoosedColor()); icon.setColorFilter(iconColor,PorterDuff.Mode.SRC_IN); holder.icon.setBACkground(icon); } else { holder.icon.setImageresource(R.drawable.subject_default); } holder.subject.setText(current.getName().toString()); numberFormat formatter = numberFormat.getnumberInstance(); formatter.setMinimumFractionDigits(0); formatter.setMaximumFractionDigits(0); String output = formatter.format(dataBase.getSpecificChoosedSubjectAppendingToName(current.getName()).get(0).getAverage()); int formattedValue = Integer.valueOf(output); //CHANGING COLOR DEPENDING ON VALUE int @R_301_2492@Color = 0; Drawable @R_301_2492@ = ContextCompat.getDrawable(context,R.drawable.mark@R_301_2492@); Drawable @R_301_2492@Border = ContextCompat.getDrawable(context,R.drawable.mark@R_301_2492@_border); if (formattedValue >= 10) { @R_301_2492@Color = resources.getColor(R.color.positivE); } else if (formattedValue >= 4 && formattedValue <= 9) { @R_301_2492@Color = resources.getColor(R.color.neutral); } else if (formattedValue < 4) { @R_301_2492@Color = resources.getColor(R.color.negativE); } @R_301_2492@.setAlpha(204); @R_301_2492@.setColorFilter(@R_301_2492@Color,PorterDuff.Mode.SRC_IN); @R_301_2492@Border.setColorFilter(@R_301_2492@Color,PorterDuff.Mode.SRC_IN); holder.mark@R_301_2492@.setImageDrawable(@R_301_2492@); holder.mark@R_301_2492@Border.setImageDrawable(@R_301_2492@Border); holder.average.setText(output); holder.average.setTypeface(EasyFonts.robotoBlack(context)); } @Override public int getItemCount() { return data.size(); } public class ReportViewHolder extends RecyclerView.ViewHolder implements View.onClickListener { TextView subject; ImageView icon; ImageView mark@R_301_2492@; ImageView mark@R_301_2492@Border; TextView average; public ReportViewHolder(View itemView) { super(itemView); subject = (TextView) itemView.findViewById(R.id.report_subject); icon = (ImageView) itemView.findViewById(R.id.report_icon); mark@R_301_2492@ = (ImageView) itemView.findViewById(R.id.report_mark@R_301_2492@); mark@R_301_2492@Border = (ImageView) itemView.findViewById(R.id.report_mark@R_301_2492@_border); average = (TextView) itemView.findViewById(R.id.report_averagE); itemView.setOnClickListener(this); } @Override public void onClick(View v) { itemClick@R_674_3475@nItemClick(v,this.getAdapterPosition()); } } }
知道怎么做?谢谢您的帮助!!!
以上是大佬教程为你收集整理的android – 在RecyclerView中更改单个drawable的颜色将更改所有drawable全部内容,希望文章能够帮你解决android – 在RecyclerView中更改单个drawable的颜色将更改所有drawable所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。