J'essaie d'utiliser "Android: elevation ="
dans mon application, mais une fois que je l'utilise, il n'apparaît pas dans l'appareil avec 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"/>
peut-être que je ne compile pas correctement Lollipop pour les appareils pré-Lollipop, vous avez des suggestions?
Si vous avez besoin de voir d'autres parties du code, je vais modifier la question.
Merci
L'élévation nécessite que l'appareil exécute Lollipop. Voir cette réponse sur la façon de simuler une élévation https://stackoverflow.com/a/26747592/680249
MIS &AGRAVE; JOUR ::
Meilleure pratique pour le faire est
<Android.support.v7.widget.CardView>
<YourLayout>
</Android.support.v7.widget.CardView>
et ajouter une bibliothèque pour cardview
dependencies {
...
compile 'com.Android.support:cardview-v7:21.0.+'
}
Sur Pre-Lollipop, vous pouvez utiliser ceci drawable
Android: background = "@ Android: drawable/dialog_holo_light_frame"
cela vous donnera le look de l'élévation
vous pouvez créer le vôtre comme ça
<?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>
Vous pouvez également utiliser un CardView de la bibliothèque de support Pour implémenter des surfaces.
Pour ce faire, ajoutez une dépendance à votre build.gradle:
compile 'com.Android.support:cardview-v7:23.1.1'
Et ensuite, utilisez-le simplement dans vos mises en page:
<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>
Ici, vous avez beaucoup plus d'options à personnaliser comparant à En utilisant @Android:drawable/dialog_holo_light_frame
en arrière-plan
MODIFIER:
Notez également que cette approche permet de simplement mettre en œuvre
Conception matérielle sur les appareils Pre-Lolipop .
Vous pouvez changer l’altitude,
autour des coins, etc.
Pour ce faire, vous devez:
app:cardElevation="8dp"
app:cardCornerRadius="8dp"
app:contentPadding="5dp">
Et n'oubliez pas d'ajouter xmlns:app="http://schemas.Android.com/apk/res-auto"
à la mise en page racine.
Aussi, vous pouvez facilement changer l'altitude dans votre code:
CardView card = (CardView) findViewById(R.id.yourPreetyCoolCardView);
card.setCardElevation(getResources()
.getDimension(R.dimen.card_picked_up_elevation));
Utilisez 8dp
pour ramasser et 2dp
pour vous reposer (normalement) et vous serez génial.
Comme décrit ici , vous pouvez imiter l’élévation avant Lollipop avec:
Android:background="@Android:drawable/dialog_holo_light_frame"