Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

"android:elevation=" doesn't work on devices pre-Lollipop with compile API21

I'm trying to use "android: elevation =" in my application but once I run it does not appear in the device with 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"/> 

maybe I'm not compiling correctly Lollipop for pre-lollipop devices, Any suggestions?

If you need to see other parts of the code, I'll edit the question

Thanks

like image 628
Aspicas Avatar asked Dec 29 '14 18:12

Aspicas


2 Answers

UPDATED ::

  1. Best Practice to do that is

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

    and add library for cardview

    dependencies {    ...    compile 'com.android.support:cardview-v7:21.0.+'  } 
  2. On Pre-Lollipop you can use this drawable

    android:background="@android:drawable/dialog_holo_light_frame"

    it will give you the look of elevation

  3. you can create your own like this

    <?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> 

reference

like image 200
Keyur Lakhani Avatar answered Sep 21 '22 00:09

Keyur Lakhani


Elevation requires the device to run Lollipop. See this answer on how to simulate elevation https://stackoverflow.com/a/26747592/680249

like image 37
drewi Avatar answered Sep 18 '22 00:09

drewi