When I change the background of a Card view, the corner radius is reset

Same problem and fix the problem this way

At first, create the shape named in Drawable "shape_background_cardview" and this add below code

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">

<solid android:color="@color/gray500" />
<corners android:radius="5dp" />

</shape>

step second, set the shape to the background CardView yourself

yourCardView.setBackgroundResource(R.drawable.shape_background_cardview);

GoodLuck


I found a solution to the question.
I needed to retrieve the background of the view and set its color, then I assigned the new background to the view.

Drawable backgroundOff = v.getBackground(); //v is a view
backgroundOff.setTint(defaultColor); //defaultColor is an int 
v.setBackground(backgroundOff);

(This answer helped: https://stackoverflow.com/a/18394982/9377499)


If you try to use CardView with corner radius you will face this problem when you set background color dynamically. Please use yourCardView.setCardBackgroundColor() methord instead of yourCardView.setBackgroundColor() :)