“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议吗?

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

谢谢

Solutions Collecting From Web of "“android:elevation =”在带有编译API21的pre-Lollipop上不起作用"

海拔要求设备运行棒棒糖。 看到如何模拟海拔这个答案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(通常)的状态,你会很棒。