android-高程阴影不会仅在预览时显示在设备上

前端之家收集整理的这篇文章主要介绍了android-高程阴影不会仅在预览时显示在设备上 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我试图对我的布局实施阴影效果,并决定使用高程选项.

但是由于某种原因,我最终在Android Studio预览中看到的内容没有显示在设备上.我将附上Android Studio预览和设备的屏幕截图.我将提供我使用的代码.

[

enter image description here

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="#90000000" />
    <corners android:radius="10dp" />
</shape>


<RelativeLayout
    android:outlineProvider="bounds"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:layout_gravity="center"
    android:paddingLeft="40dp"
    android:paddingRight="40dp"
    android:paddingTop="20dp"
    android:paddingBottom="20dp"
    android:clipToPadding="false">

<RelativeLayout
    android:layout_width="300dp"
    android:layout_height="300dp"
    android:background="@drawable/button_shadow"
    android:elevation="30dp"
    />

</RelativeLayout>
最佳答案
标高属性仅在Android 5.0上受支持.因此,我认为您正在较旧的设备上运行您的应用程序.

这是一个解决方案,您可以使用CardView替代RelativeLayout.

在build.gradle()应用中添加依赖项

compile 'com.android.support:cardview-v7:26.0.0'

然后像这样在您的xml文件中使用它

<android.support.v7.widget.CardView
  android:id="@+id/media_card_view"
  android:layout_width="300dp"
  android:layout_height="300dp"
  card_view:cardBackgroundColor="@android:color/white"
  card_view:cardElevation="30dp"
  card_view:cardUseCompatPadding="true">
   ...
</android.support.v7.widget.CardView>

或者,您可以使用LayerList制作自己的阴影,创建一个名为shadow.xml的文件并将其放置在Drawable文件夹中

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!--the shadow comes from here-->
<item
    android:bottom="0dp"
    android:drawable="@android:drawable/dialog_holo_light_frame"
    android:left="0dp"
    android:right="0dp"
    android:top="0dp">

</item>

<item
    android:bottom="0dp"
    android:left="0dp"
    android:right="0dp"
    android:top="0dp">
    <!--whatever you want in the background,here i preferred solid white -->
    <shape android:shape="rectangle">
        <solid android:color="@android:color/white" />

    </shape>
</item>
</layer-list>

然后像这样将其分配给视图

android:background="@drawable/shadow"

猜你在找的Android相关文章