标签: android-elevation

Android"海拔"没有显示阴影

我有一个ListView,每个列表项我希望它在它下面显示一个阴影.我正在使用Android Lollipop的新高程功能在View上设置一个我想要投射阴影的Z,并且我已经使用ActionBar(技术上是Lollipop中的工具栏)有效地做到了这一点.我正在使用Lollipop的高程,但由于某种原因,它没有在列表项下显示阴影.以下是每个列表项的布局设置方式:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    style="@style/block"
    android:gravity="center"
    android:layout_gravity="center"
    android:background="@color/lightgray"
    >

    <RelativeLayout
        android:layout_width="300dp"
        android:layout_height="300dp"
        android:layout_marginLeft="40dp"
        android:layout_marginRight="40dp"
        android:layout_marginTop="20dp"
        android:layout_marginBottom="20dp"
        android:elevation="30dp"
        >

        <ImageView
            android:id="@+id/documentImageView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:scaleType="centerCrop" />

        <LinearLayout
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/alphared"
            android:layout_alignParentBottom="true" >

            <appuccino.simplyscan.Extra.CustomTextView
                android:id="@+id/documentName"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:textColor="@color/white"
                app:typeface="light"
                android:paddingLeft="16dp"
                android:paddingTop="8dp"
                android:paddingBottom="4dp"
                android:singleLine="true"
                android:text="New Document"
                android:textSize="27sp"/>

            <appuccino.simplyscan.Extra.CustomTextView
                android:id="@+id/documentPageCount"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:textColor="@color/white"
                app:typeface="italic"
                android:paddingLeft="16dp"
                android:layout_marginBottom="16dp"
                android:text="1 page"
                android:textSize="20sp"/>

        </LinearLayout>

    </RelativeLayout>

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

但是,这是它如何显示列表项,没有阴影: 在此输入图像描述

我也试过以下无济于事:

  1. 将高程设置为ImageView和TextViews本身而不是父布局.
  2. 将背景应用于ImageView.
  3. 用TranslationZ代替Elevation.

android shadow material-design android-elevation

253
推荐指数
9
解决办法
21万
查看次数

在Android 5.0上的AppCompat CardView上设置XML高程

根据我的理解,在预览阶段的早期,似乎没有办法只在CardView没有Java的黑客攻击的情况下在XML中设置高程.既然官方发布已经发布,有没有办法在XML中执行此操作而无需编写Java代码来设置高程?

我试过card_view:cardElevation没有效果.我曾经想过当我使用5.0的模拟器时一切都很好.但是现在我在我的实际设备上使用正式版本,我的所有内容都CardView消失了

Pre Lollipop,效果很好.

这是我的完整xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:id="@+id/cv1"
    card_view:cardElevation="4dp"
    android:layout_margin="6dp"
    card_view:cardCornerRadius="3dp"
    android:layout_height="match_parent">
Run Code Online (Sandbox Code Playgroud)

android android-appcompat android-cardview android-elevation

92
推荐指数
3
解决办法
8万
查看次数

如何实现前棒棒糖的材料设计高程

谷歌已经表明,海拔效果显示在棒棒糖一些不错的方式在这里.

android:elevation="2dp"
Run Code Online (Sandbox Code Playgroud)

按钮,

android:stateListAnimator="@anim/button_state_list_animator"
Run Code Online (Sandbox Code Playgroud)

如何在没有第三方库的情况下模仿前Lollipop版本的高程效果?

android android-appcompat material-design android-elevation

41
推荐指数
6
解决办法
5万
查看次数

"android:elevation ="在使用编译API21的前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'
}
Run Code Online (Sandbox Code Playgroud)

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"/>
Run Code Online (Sandbox Code Playgroud)

也许我没有为棒棒糖前装置正确编制Lollipop,有什么建议吗?

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

谢谢

android android-5.0-lollipop android-elevation

35
推荐指数
3
解决办法
4万
查看次数

材料TabLayout高程不起作用

由于某种原因,高程属性似乎不适用于材料设计支持库中的新TabLayout.有任何想法吗?XML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<android.support.design.widget.TabLayout
    android:id="@+id/tab_layout"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:elevation="6dp" />

<android.support.v4.view.ViewPager
    android:id="@+id/view_pager"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

在父片段中像这样连接:

ViewPager viewPager = (ViewPager) view.findViewById(R.id.view_pager);
TabLayout tabLayout = (TabLayout) view.findViewById(R.id.tab_layout);
AppPagerAdapter appPagerAdapter = new AppPagerAdapter(getChildFragmentManager());
viewPager.setAdapter(appPagerAdapter);
tabLayout.setupWithViewPager(viewPager);
Run Code Online (Sandbox Code Playgroud)

图片: 相关图片

活动有一个工具栏,但这不在片段之外,不应影响tablayout有阴影的能力:

相关活动xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.bluckapps.appinfomanager.ui.MainActivity">

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?attr/colorPrimary"
    android:elevation="6dp"
    android:minHeight="?attr/actionBarSize"
    tools:ignore="UnusedAttribute" />

<FrameLayout
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1" />

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

android material-design android-elevation

35
推荐指数
2
解决办法
2万
查看次数

android:提升底部只有阴影效果,如何让阴影效果显示在顶部?

我在活动的底部使用了framelayout,为了显示片段上的阴影效果,我添加了android:elevation.但阴影效果只出现在底部不在顶部,任何人都可以给我一些建议吗?

<FrameLayout
    android:id="@+id/bottom_container"
    android:background="#00737f"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:layout_gravity="bottom"
    android:elevation="4dp"
    android:layout_alignParentBottom="true"
    android:layout_marginBottom="50dp"/>
Run Code Online (Sandbox Code Playgroud)

android shadow material-design android-elevation android-framelayout

29
推荐指数
1
解决办法
3万
查看次数

高程不适用于ImageView

ImageView的高程不起作用.我在XML中声明了ImageView,如下所示:

<ImageView
        android:id="@+id/image"
        android:layout_width="100dp"
        android:layout_height="50dp"
        android:elevation="10dp"
        android:src="@drawable/youtube" />
Run Code Online (Sandbox Code Playgroud)

我还应该做些什么来提升ImageView的正常工作?

android imageview android-elevation

26
推荐指数
4
解决办法
2万
查看次数

删除高程阴影而不删除高程本身

AppBarLayout没有办法让没有阴影并保持其高度?

<android.support.design.widget.AppBarLayout
        app:elevation="0dp">
Run Code Online (Sandbox Code Playgroud)

android shadow android-toolbar android-elevation android-appbarlayout

26
推荐指数
2
解决办法
4457
查看次数

高程和平移之间的差异Z

我尝试了两种功能,但我不知道为什么我应该使用提升而不是翻译或反之.

当我使用它们时都会产生阴影.

我应该同时使用(具有相同的价值)?我应该只使用一个?

先感谢您!

编辑:

我进行了视觉比较,可以清楚地看到它:

比较海拔与平移Z

我得到的结论是(至少在0到16 dp的范围内)其中一个是可有可无的.

我看到同样的阴影在8对8和16对16和16和8 + 8相同的阴影.

但我没有一个伟大的愿景,你觉得谁呢?

comparison android android-elevation

23
推荐指数
1
解决办法
1万
查看次数

更改CardView阴影颜色

这个问题在很多时候被问过,但我仍然找不到解决这个问题的好方法.

为什么我需要这样做?好吧,因为项目我和我的团队开发有iOS风格.

我尝试了什么?

  1. 9.pathch阴影生成器,但9.pathes本质上是pngs,它给了我没有灵活性,如果我将使用这种方法,我应该编辑边缘到处.
  2. 它支持自定义阴影的碳库,它们被绘制到视图边框之外,但是当库不为圆角绘制阴影时,存在关于圆角矩形的问题.
  3. 使用旧的CardView实现并覆盖其阴影颜色,但它被绘制在卡片边界内,因此它不是选项.

那么有没有办法改变CardView的阴影颜色,只需对所有布局文件进行最少的编辑,并在视图外部绘制阴影,就像原始的CardView一样?

android shadow android-view android-cardview android-elevation

22
推荐指数
4
解决办法
2万
查看次数