相关疑难解决方法(0)

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万
查看次数

如何将底部阴影添加到选项卡布局

嗨,我需要在我的标签布局下添加阴影(如在Skype中).

shadow_skype

我的活动xml:

    <RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <android.support.v7.widget.Toolbar xmlns:local="http://schemas.android.com/apk/res-auto"
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:minHeight="?attr/actionBarSize"
        android:background="@color/splashGreenTop"
        local:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        local:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
    <android.support.design.widget.TabLayout
        android:id="@+id/tab_layout"
        android:layout_below="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="?attr/colorPrimary"
        android:elevation="0dp"
        android:minHeight="?attr/actionBarSize" />
    <FrameLayout
        android:layout_width="match_parent"
        android:layout_below="@+id/tab_layout"
        android:id="@+id/tabContainer"
        android:layout_height="match_parent" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

当我添加android:elevation="10dp"到Tablayout时,阴影被添加到底部和顶部..我只需要底部.见图片......

在此输入图像描述

我怎样才能做到这一点 ?提前致谢.

xml android toolbar shadow android-elevation

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

非按钮视图的Android涟漪效应+提升

我正在尝试将触摸反馈添加到LinearLayout,这类似于API级别21中的常规Button反馈,就像在示例中一样,并且到目前为止还没有成功.

我已经定义了一个像这样的标准波纹可绘制:

<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?android:colorControlHighlight">

<item android:id="@android:id/mask">
    <shape android:shape="rectangle">
        <solid android:color="?android:colorAccent" />
    </shape>
</item>
Run Code Online (Sandbox Code Playgroud)

并使用了Google 在此提供的StateListAnimator :

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="true" android:state_pressed="true">
    <objectAnimator
        android:duration="@android:integer/config_shortAnimTime"
        android:propertyName="translationZ"
        android:valueTo="@dimen/touch_raise"
        android:valueType="floatType" />
</item>
<item>
    <objectAnimator
        android:duration="@android:integer/config_shortAnimTime"
        android:propertyName="translationZ"
        android:valueTo="0dp"
        android:valueType="floatType" />
</item>
Run Code Online (Sandbox Code Playgroud)

在定义动画师和波纹可绘制之后,我将它们添加到我的LinearLayout中,如下所示:

<LinearLayout
    android:id="@+id/linearLayout"        
    android:clickable="true"
    android:focusable="true"
    android:orientation="horizontal"
    android:background="@drawable/ripple"
    android:stateListAnimator="@anim/touch_elevation">
Run Code Online (Sandbox Code Playgroud)

我的想法是使用这个LinearLayout作为一个按钮,因为它更容易插入各种类型的文本并在其中处理ImageView定位(而不是按钮drawables).

只要视图的背景根据问题没有透明度,就可以单独添加涟漪效果或动画.

我不确定这是否是与上述问题相关的问题,但看到标准按钮设法同时采用波纹和高程动画反馈,我认为在其他视图中也可以实现这种效果.

任何洞察这个问题将不胜感激.

android rippledrawable android-5.0-lollipop android-elevation

8
推荐指数
1
解决办法
2831
查看次数

Android 5.0(Lollipop)上的提升无法正常工作

我试图重现Google在这里提出的高程示例:

https://developer.android.com/training/material/shadows-clipping.html

但对我来说,没有阴影出现.不在Android Studio设计器中,不在AVD模拟器上.我正在使用所有最新版本的Android Studio,SDK和模拟器图像.

我错过了什么?

android android-elevation

7
推荐指数
1
解决办法
5855
查看次数