当我更改视图的背景时,将重置角半径

时间:2018-04-14 22:16:05

标签: android view background android-cardview cornerradius

情况是,当我从程序修改卡片视图背景时,卡片视图的角半径会重置。但为什么呢? (我认为我不需要提供任何其他信息(代码,结果图片等),因为我认为它很清楚。如果您需要更多信息,那么您应该在评论中写下来。)

3 个答案:

答案 0 :(得分:7)

如果尝试将CardView与角半径一起使用,则在动态设置背景颜色时会遇到此问题。请使用yourCardView.setCardBackgroundColor()方法而不是yourCardView.setBackgroundColor():)

答案 1 :(得分:2)

我找到了问题的解决方案 我需要检索视图的背景并设置其颜色,然后我将新背景分配给视图。

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

(这个答案有帮助:https://stackoverflow.com/a/18394982/9377499

答案 2 :(得分:1)

相同的问题,并以此方式解决问题

首先,创建以Drawable“ shape_background_cardview”命名的形状,然后在下面的代码中添加

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

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

</shape>

第二步,自行设置背景CardView的形状

yourCardView.setBackgroundResource(R.drawable.shape_background_cardview);

好运