Boa noite, estou tentando mudar em tempo de execução a cor de fundo de um elemento, porém, está saindo de uma maneira bem estranha.
Meu drawable:
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval" >
<size
android:width="120dp"
android:height="120dp"/>
</shape>
A minha classe que representa um item do meu Recycler view:
class ColorViewHolder extends RecyclerView.ViewHolder{
final ImageView imageView;
private Context context;
ColorViewHolder(@NonNull View itemView, Context context) {
super(itemView);
this.imageView = itemView.findViewById(R.id.color_view);
this.context = context;
}
void bind(Color color) {
Drawable drawable = imageView.getBackground();
drawable.setColorFilter(color.getColorId(), PorterDuff.Mode.MULTIPLY);
}
}
Meu layout que representa cada item da recycler view:
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto">
<ImageView
android:id="@+id/color_view"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_margin="10dp"
android:background="@drawable/circle"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:contentDescription="TODO" />
</android.support.constraint.ConstraintLayout>
Meu problema é que quando a app é executada, as cores ficam todas em um tom de cinza escuro, acredito que estou setando a cor de uma maneira errada, alguém teria alguma idéia do que pode estar acontecendo?
Obrigado!