CardView (android.support.v7.cardview) остается белым, даже если я устанавливаю обратный чертеж с помощью андроида: backround - документация дает мне ощущение, что она должна работать. Нет идеи, что я делаю неправильно здесь.
Возможность рисования в качестве фона для CardView
Ответ 1
Я знаю, что это старый вопрос, но у меня есть простое решение - просто сделайте первый ребенок вашего CardView ImageView и укажите тип шкалы для fitXY. Вы можете избавиться от дополнительного дополнения CardView, установив cardElevation и cardMaxElevation на 0dp
:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="200dp"
app:cardCornerRadius="4dp"
app:cardElevation="0dp"
app:cardMaxElevation="0dp">
<ImageView
android:src="@drawable/your_background"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitXY"/>
<... your layout
.../>
</android.support.v7.widget.CardView>
Ответ 2
для рисования или использования цвета:
cvSellerShopp.setBackgroundResource(R.drawable.ic_action_add_image);
для использования цвета:
cvSellerShopp.setCardBackgroundColor(R.color.colorPrimary);
но это не дает ожидаемых результатов
Ответ 3
В этом случае Cardview будет размещать одну группу представлений, например, относительную компоновку, а затем просто установить любой фон в относительный макет.
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/list_container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="5dp"
card_view:cardCornerRadius="4dp"
card_view:cardUseCompatPadding="true">
<RelativeLayout
android:id="@+id/list_container_bg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:orientation="vertical">
<!--Add cardview contents-->
</RelativeLayout>
</android.support.v7.widget.CardView>
Ответ 4
Попробуйте это
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/list_container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="5dp"
card_view:cardCornerRadius="4dp"
card_view:cardUseCompatPadding="true">
<RelativeLayout
android:id="@+id/list_container_bg"
android:layout_width="match_parent"
android:background="@drawable/yourbackground"
android:layout_height="match_parent">
<!--Add cardview contents-->
</RelativeLayout>
</android.support.v7.widget.CardView>
card_view: cardBackgroundColor = "@андроид: цвет /holo _green_dark
здесь вы можете установить любой цвет или сделать его прозрачным, предоставив цвет прозрачным и если u палочка, какая-то выталкиваемая, как изображение или svg, установите RelativeLayout background
Ответ 5
Вы можете использовать LinearLayout или Relative layout внутри CardView и установить нарисованный фон, как показано ниже:
<android.support.v7.widget.CardView
android:id="@+id/card6"
android:layout_width="180dp"
android:layout_height="wrap_content"
android:layout_marginRight="8dp"
android:layout_marginTop="10dp"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/card4"
app:cardCornerRadius="10dp"
app:cardElevation="4dp"
app:cardMaxElevation="8dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@drawable/card_bg"
android:padding="10dp">
<ImageView
android:id="@+id/card6Image"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_gravity="center_horizontal"
android:src="@mipmap/ic_launcher_round" />
<TextView
android:id="@+id/card6Title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:padding="5dp"
android:text="Daily Check In"
android:textColor="#ffffff"
android:textSize="15sp" />
<TextView
android:id="@+id/card6Description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:padding="5dp"
android:text="Just Check in Daily and Earn Credits"
android:textColor="#ffffff"
android:textSize="10sp" />
</LinearLayout>
</android.support.v7.widget.CardView>
Ниже мой ресурсный файл Drawable:
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<gradient
android:angle="90"
android:centerColor="#555994"
android:endColor="#b5b6d2"
android:startColor="#555994"
android:type="linear" />
<corners
android:radius="0dp"/>
Ответ 6
Я получил эту работу, добавив линейное разметку в вид карты, а затем установив для cardPreventCornerOverlap значение false в виде карты.
<android.support.v7.widget.CardView
android:id="@+id/result_cv"
android:layout_width="match_parent"
android:layout_height="150dp"
android:layout_margin="4dp"
app:cardCornerRadius="16dp"
app:cardElevation="8dp"
app:cardPreventCornerOverlap="false"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/gradient"
android:gravity="center"
>
<!-- your views -->
</LinearLayout>
</android.support.v7.widget.CardView>
Ответ 7
Использовать атрибут cardview:cardBackgroundColor
:
android.support.v7.cardview:cardBackgroundColor="@color/black"
или в коде,
myCardViewObject.setCardBackgroundColor(someIntColor)
подробнее здесь: https://developer.android.com/reference/android/support/v7/widget/CardView.html