Android RecyclerView自定义图像显示

问题描述 投票:0回答:1

我有一个recyclerview,它显示来自SQLite数据库的数据。我有一个图标列表,我将它们保存在ArrayList中,并在ArrayList中也将颜色应用于它们。

  Example:         mMoodIcons.add(new MoodIcons(R.drawable.excited_icon,  R.mipmap.background_clouds_excited, ContextCompat.getColor(mContext, R.color.excited), mContext.getString(R.string.excited)));

在recycerview中,我有此代码:

   if(currentLog.getMoodBefore() == 3){
        holder.moodIcon.setImageResource(R.drawable.confident_icon);
        holder.moodIcon.setColorFilter(ContextCompat.getColor(mContext, R.color.confident));
    }

我需要使其具有动态性,例如,每种心情都有一个数字1 =快乐,2 =良好,等等

因此,当回收者视图正在显示日志中的信息时,它可以显示正确的带有已应用颜色的心情图标。

有人可以帮我编写代码的逻辑吗?我在撞墙。

编辑:我上面编写的方式在if语句中起作用。但这将需要18个if语句。是否有一种轻松的方式编写此代码,也许使用arraylist和for循环?

android android-recyclerview recycler-adapter
1个回答
0
投票

我自己解决了这个问题。我创建了心情图标和颜色的数组列表。然后我使用了这段代码:

 for (MoodIconsWorkoutLog moodBefore : moodIcons) {

        if(moodBefore.getMoodBefore() == currentLog.getMoodBefore() ){
            holder.moodIcon.setImageResource(moodBefore.getMoodImage());
            holder.moodIcon.setColorFilter(moodBefore.getColour());
        }
    }

完美运作

© www.soinside.com 2019 - 2024. All rights reserved.