O CardView possui um atributo card_view:cardBackgroundColor
para definir a cor do plano de fundo. Este atributo funciona bem.
Ao mesmo tempo, não há um método para alterar a cor dinamicamente.
Eu apenas tentei soluções como:
mCardView.setBackgroundColor(...);
ou usando um Layout dentro do cardView
<android.support.v7.widget.CardView>
<LinearLayout
android:id="@+id/inside_layout">
</android.support.v7.widget.CardView>
View insideLayout = mCardView.findViewById(R.id.inside_layout);
cardLayout.setBackgroundColor(XXXX);
Essas soluções não funcionam porque o cartão possui um cardCornerRadius.