el CardView ( android.support.v7.cardview ) permanece en blanco a pesar de que configuré un backround dibujable a través de android: backround – La documentación me da la sensación de que debería funcionar. No tengo idea de lo que estoy haciendo mal aquí.
phil
Sé que esta es una vieja pregunta, pero tengo una solución simple: simplemente haga que el primer hijo de su Vista de tarjeta un ImageView y especifique el tipo de escala a fitXY. Puede deshacerse del relleno adicional de CardView configurando cardElevation y cardMaxElevation a 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="https://stackoverflow.com/questions/27299291/@drawable/your_background"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitXY"/>
<... your layout
.../>
</android.support.v7.widget.CardView>
-
¿Hay alguna manera de hacer esto sin renunciar a la sombra de la elevación?
– amitavk
18 de abril de 2018 a las 15:05
para dibujable o color solo usa:
cvSellerShopp.setBackgroundResource(R.drawable.ic_action_add_image);
para uso de color:
cvSellerShopp.setCardBackgroundColor(R.color.colorPrimary);
pero este no produce los resultados esperados
Make Cardview albergará un grupo de visualización para, por ejemplo, un diseño relativo en este caso y luego simplemente establecerá cualquier fondo en un diseño relativo.
<?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>
Hice que esto funcionara agregando un diseño lineal en la vista de tarjeta y luego configurando cardPreventCornerOverlap en falso en la vista de tarjeta.
<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>
Ankit Deshmukh
El comando que usé fue:
cardView.setBackgroundResource(R.drawable.card_view_bg);
dónde card_view_bg es un archivo de recursos XML personalizado.
Si tiene algunos diseños dentro de la vista de tarjeta y estos diseños se superponen con los márgenes de la vista de tarjeta, es posible que necesite un archivo de recursos de fondo personalizado separado para los diseños como el que usé para el fondo de la vista de tarjeta.
Prueba esto
<?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=”@android:color/holo_green_dark
aquí puede configurar cualquier color o hacerlo transparente dando color transparente y si usa una varita dibujable como imagen o svg, coloque el fondo RelativeLayout
Chandan
Puede usar el diseño LinearLayout o Relative dentro de CardView y establecer un fondo dibujable como se muestra a continuación:
<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="https://stackoverflow.com/questions/27299291/@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>
A continuación se muestra mi archivo de recursos 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"/>
parece que no es posible. echa un vistazo aquí code.google.com/p/android/issues/detail?id=77843
– Cinta negra
4 de diciembre de 2014 a las 16:51