Android CardView със странна рамка, когато е прозрачен

Имам проблеми с прозрачността на CardView и card_elevation. Опитвайки се да използвам прозрачен CardView, резултатът е:

въведете описание на изображението тук

Без прозрачност:

въведете описание на изображението тук

Това, което се опитвам да получа, е нещо подобно:

въведете описание на изображението тук

Ето моят xml:

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@mipmap/eifell"
    android:padding="10dp"
    tools:context=".MainActivity">

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingTop="5dp"
        android:background="@android:color/transparent">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <android.support.v7.widget.CardView
                android:id="@+id/newsCardView"
                android:layout_width="match_parent"
                android:layout_height="175dp"
                card_view:cardBackgroundColor="#602B608A"
                card_view:cardElevation="5dp">

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:background="@android:color/transparent">
                </LinearLayout>

            </android.support.v7.widget.CardView>

        </LinearLayout>
    </ScrollView>

</RelativeLayout>

person Isquierdo    schedule 25.07.2015    source източник
comment
Получавали ли сте някога заобиколно решение за това? Изглежда, че картите не са проектирани да поддържат прозрачност на фона: code.google .com/p/android/issues/detail?id=78061   -  person Steve Blackwell    schedule 26.09.2015
comment
Здравей Стив, не, просто използвам RelativeLayout с прозрачен фон без сянка (повдигане). Като намеря нещо ще публикувам къде.   -  person Isquierdo    schedule 27.09.2015
comment
@SteveBlackwell Това е валиден отговор на този въпрос. Благодаря.   -  person Vaibhav Jani    schedule 18.10.2016
comment
Въпрос: Защо всъщност CardViews се държат по този начин? Има ли проблем с Github в този смисъл?   -  person Taslim Oseni    schedule 05.09.2019


Отговори (3)


Знам, че съм малко закъснял, но това е само поради повишението на картата по подразбиране. Задайте го на нула, за да решите проблема си.

app:cardElevation="0dp"
person Prateek Gupta    schedule 11.12.2018
comment
Много е неудобно да имате това по подразбиране. те просто ми загубиха 5-6 часа само за тази линия. благодаря за това - person Anonymous-E; 13.07.2019
comment
но как можеш да запазиш сянката? - person Pedro Antonio; 19.06.2020
comment
След това ще кажа, че не можете да премахнете надморската височина и тогава ще трябва да потърсите помощ от ViewOutlineProviders, за да разрешите този проблем. - person Prateek Gupta; 30.06.2020

Опитайте този код:

 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <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/newsCardView"
        android:layout_width="175dp"
        android:layout_height="175dp"
        card_view:cardBackgroundColor="#602B608A"
        card_view:cardCornerRadius="0dp"
        card_view:cardElevation="5dp">

    </android.support.v7.widget.CardView>

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/imageView"
        android:layout_gravity="left|top"
        android:src="@drawable/fake_image" /> //REPLACE THIS WITH YOUR IMAGE
</FrameLayout>

въведете описание на изображението тук

Ако не помогне, предоставете целия xml код на вашето оформление

person Sergey Zabelnikov    schedule 25.07.2015
comment
Всичко изглежда страхотно на устройството ми, опитайте да актуализирате библиотеката на cardView до com.android.support:cardview-v7:22.1.1 - person Sergey Zabelnikov; 25.07.2015
comment
Вече използвам тази версия, коя версия на android тествахте? - person Isquierdo; 25.07.2015
comment
Android 4.4.2 и Android 5.1.1 - person Sergey Zabelnikov; 25.07.2015
comment
Можете ли да ми изпратите екранна снимка? Няма ли странна дъска на изгледа на картата? tks - person Isquierdo; 25.07.2015
comment
@StealthRabbi не е ТОЛКОВА за ясни отговори? - person Shujito; 20.01.2017
comment
@Shujito Не е лесно за разбиране и няма обяснение на предоставения код или по какъв начин е подобрение спрямо публикуваното в OP. - person Stealth Rabbi; 23.01.2017
comment
ако промените cardCornerRadius, ще видите артефакта, за който cRobot говори - person miv; 16.02.2018
comment
настройката cardElevation на 0 премахна границата в моя случай - person BiGGZ; 26.04.2018

Имах подобен проблем. Всичко обаче проработи, когато премахнах реда cardBackgroundColor и използвах android:background="@color/transparent. Когато добавите или зададете cardBackgroundColor, по подразбиране има леко издигане, което причинява непрозрачен ефект на сянка.

person Vinod Kumar    schedule 02.04.2021