Android - CardView海拔阴影变暗

时间:2017-08-28 08:04:54

标签: android android-cardview android-elevation

我正在使用'com.android.support:cardview-v7:23.4.0'并且我看到阴影但不是深灰色的阴影,我想得到一个更暗的高度阴影,但是我没有看到任何属性来获取它,任何想法?< / p>

    <android.support.v7.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="8dp"
        android:layout_marginRight="8dp"
        android:layout_marginLeft="8dp"
        android:layout_marginBottom="8dp"
        app:cardElevation="8dp"
        app:cardPreventCornerOverlap="false"
        app:cardCornerRadius="1dp"
        app:cardUseCompatPadding="false">
        <include layout="@layout/any_layout"/>
    </android.support.v7.widget.CardView>

5 个答案:

答案 0 :(得分:6)

我相信阴影强度由应用程序使用的基本主题定义。因此,对于超过21的API级别,您可以覆盖阴影的强度。在您的styles.xml中添加ambientShadowAlphaspotShadowAlpha的这两行。请注意,这些值的范围是0到1,其中0完全透明,而1完全不透明(几乎黑色):

<resources>

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="android:fontFamily">@font/barlow_family</item>
    <item name="android:ambientShadowAlpha">1</item>
    <item name="android:spotShadowAlpha">1</item>

    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:statusBarColor">@android:color/background_light</item>
</style>

答案 1 :(得分:3)

   <androidx.cardview.widget.CardView app:cardCornerRadius="10dp"
        app:cardUseCompatPadding="true"
        android:elevation="10dp"
        android:outlineSpotShadowColor="@color/black"
        android:outlineAmbientShadowColor="@color/grey"
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

 app:cardUseCompatPadding="true"

尝试

答案 2 :(得分:0)

无法更改官方CardView标高的颜色,请查看此Carbon

答案 3 :(得分:0)

尝试使用此解决方案。将您的cardview包装在RelativeLayout中并为其提供背景信息。

 <RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="150dp"
    android:background="#FFE7E2E4">
    <android.support.v7.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:cardElevation="5dp"
        app:cardUseCompatPadding="true"/>
</RelativeLayout>

答案 4 :(得分:0)

您无法更改cardView阴影颜色,但要使其更暗,您可以使用app:cardElevation =&#34; 15dp&#34;喜欢

<android.support.v7.widget.CardView
    android:layout_width="match_parent"
    android:layout_height="100dp"
    android:layout_margin="10dp"
    app:cardElevation="15dp"
    > </android.support.v7.widget.CardView>