Ответ 1
Высота требует, чтобы устройство запускало Lollipop. См. Этот ответ о том, как имитировать повышение fooobar.com/questions/45808/...
Я пытаюсь использовать "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"/>
Возможно, я не правильно компилирую Lollipop для устройств с предварительным леоптипом, любые предложения?
Если вам нужно увидеть другие части кода, я отредактирую вопрос
Спасибо
Высота требует, чтобы устройство запускало Lollipop. См. Этот ответ о том, как имитировать повышение fooobar.com/questions/45808/...
ОБНОВЛЕНО::
Лучшая практика, чтобы сделать это
<android.support.v7.widget.CardView>
<YourLayout>
</android.support.v7.widget.CardView>
и добавить библиотеку для просмотра карт
dependencies {
...
compile 'com.android.support:cardview-v7:21.0.+'
}
В Pre-Lollipop вы можете использовать drawable
Android: фон = "@андроид: рисуем /dialog _holo_light_frame"
он даст вам вид повышения
вы можете создать свой собственный, как это
<?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>
Здесь у вас есть еще несколько опций для его настройки по сравнению с
используя @android:drawable/dialog_holo_light_frame
в качестве фона
EDIT:
Также обратите внимание, что этот подход позволяет просто реализовать
Конструкция материалов на устройствах Pre-Lolipop.
Вы можете изменить высоту,
вокруг углов и т.д.
Для этого вам необходимо:
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
для выбранных и 2dp
для отдыха (обычного) состояния, и вы будете здоровы.