“android:elevation =”在带有编译API21的pre-Lollipop上不起作用

我试图在我的应用程序中使用"android: elevation =" ,但一旦我运行它不会出现在设备与Android 4.1.2

gradle这个

 apply plugin: 'com.android.application' android { compileSdkVersion 21 buildToolsVersion "21.1.2" defaultConfig { applicationId "com.example.alvaro.proyectocaronte" minSdkVersion 14 targetSdkVersion 21 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:21.0.3' } 

layout.xml

 <RelativeLayout android:layout_width="1100dp" android:layout_height="fill_parent" android:background="@drawable/rounded_corner" android:layout_alignParentTop="true" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" android:layout_marginRight="93dp" android:layout_marginEnd="93dp" android:elevation="3dp"/> 

也许我没有正确编译棒棒糖预棒棒糖设备,有什么build议吗?

如果您需要查看代码的其他部分,我将编辑该问题

谢谢

  • android:提升底部只有阴影效果,如何让阴影效果显示在顶部?
  • Android的ScrollView裁剪儿童海拔影子
  • Android appbarlayout提升会显示在状态栏中
  • 如何改变android仰angular阴影的方向?
  • 如何在cardview前面引入imageView? 当两者都是相对布局的孩子
  • 材质TabLayout提升不起作用
  • appCompat v24.0.0上的AppBarLayout高程更改被延迟
  • 高程不适用于ImageView
  • 海拔要求设备运行棒棒糖。 看到如何模拟海拔这个答案https://stackoverflow.com/a/26747592/680249

    更新 ::

    1. 最好的做法是做到这一点

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

      并为cardview添加库

       dependencies { ... compile 'com.android.support:cardview-v7:21.0.+' } 
    2. Pre-Lollipop上,你可以使用这个drawable

      机器人:背景= “@机器人:可拉伸/ dialog_holo_light_frame”

      它会给你看的海拔

    3. 你可以像这样创build你自己的

       <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape android:shape="rectangle"> <solid android:color="#BDBDBD"/> <corners android:radius="5dp"/> </shape> </item> <item android:left="0dp" android:right="0dp" android:top="0dp" android:bottom="2dp"> <shape android:shape="rectangle"> <solid android:color="#ffffff"/> <corners android:radius="5dp"/> </shape> </item> </layer-list> 

    参考

    您也可以使用支持库中的CardView来实现曲面。
    要这样做添加依赖到您的build.gradle:

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

    然后简单地在你的布局中使用它:

      <android.support.v7.widget.CardView android:layout_width="match_parent" android:layout_height="150dp" android:layout_margin="16dp" android:background="#fff" > </android.support.v7.widget.CardView> 

    在这里你有更多的select来定制它比较使用@android:drawable/dialog_holo_light_frame作为背景

    编辑:
    另外请注意, 这种方法可以让你简单地实现
    预Lolipop设备上的材料devise。
    您可以更改高程,
    绕着拐angular等
    要做到这一点,你必须:

      app:cardElevation="8dp" app:cardCornerRadius="8dp" app:contentPadding="5dp"> 

    别忘了将xmlns:app="http://schemas.android.com/apk/res-auto"到根布局。

    您也可以轻松更改代码中的高程:

     CardView card = (CardView) findViewById(R.id.yourPreetyCoolCardView); card.setCardElevation(getResources() .getDimension(R.dimen.card_picked_up_elevation)); 

    使用8dp拾取和2dprest(通常)的状态,你会很棒。