标签: android-elevation

Android"提升"未在CustomView下显示阴影

我有一个CustomView工作在Lollipop前,现在我尝试申请android:elevationandroid:translateZLollipop设备,但似乎不起作用.

<com.example.CustomView
    android:id="@+id/myview"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:elevation="10dp">
</com.example.CustomView>
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

android android-custom-view android-elevation

11
推荐指数
1
解决办法
6131
查看次数

React-native <View>组件的"高程"样式导致丑陋的阴影

高程样式属性为Android 5.0+启用了框阴影.

我在这里做了一些不寻常的"升高",导致丑陋,可以在下面的截图中看到?另外,有没有办法定义阴影偏移?

模拟器运行6.0(> 5.0),所以这不是问题.我正在运行react-native 25.1.

  "dependencies": {
    "react": "^0.14.8",
    "react-native": "^0.25.1",
    "react-native-gcm-android": "^0.2.0",
    "react-native-material-design": "^0.3.5",
    "react-native-system-notification": "^0.1.10",
    "react-redux": "^4.4.5",
    "redux": "^3.5.2"
  }
Run Code Online (Sandbox Code Playgroud)

这是反应原生的View组件样式文档

这是我的渲染方法:

  render() {
    return (
      <ListView
        dataSource={alertData}
        renderRow={(rowData) =>
          <View style={style.cardContainer}>
            <Text>{rowData.blah}</Text>
            <Text>{"#" + rowData.foo}</Text>
            <Text>{rowData.blah}</Text>
            <Text>{rowData.foo}</Text>
            <Text>{rowData.baz}</Text>
          </View>
        }
      />
    );
  }
Run Code Online (Sandbox Code Playgroud)

风格宣言:

var style = StyleSheet.create({
  cardContainer : {
    elevation   : 3,
    flex        : 1,
    margin      : 10,
    padding     : 10,
    borderWidth : 2,
    borderColor : beeStyles.colors.lightGray
  }
});
Run Code Online (Sandbox Code Playgroud)

以某种方式导致这个......

在此输入图像描述

android-layout android-elevation react-native

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

"setElevation"vs"setTranslationZ"vs"setZ"

Lollipop具有"View"类的所有新功能.它们之间究竟有什么区别,为什么我们需要这么多功能呢?

我已经阅读了文档,我想了解(或更好地理解)每个文档的差异和需求,以便我知道何时使用它们:

  1. 海拔

基础z视图的深度

必须是维值,这是一个附加单位的浮点数,例如"14.5sp".可用单位是:px(像素),dp(与密度无关的像素),sp(基于首选字体大小的缩放像素),in(英寸),mm(毫米).

这也可能是对包含此类型值的资源(格式为"@ [package:] type:name")或主题属性(格式为"?[package:] [type:] name")的引用.

这对应于全局属性资源符号高程.

那么它是从它开始的呢?

  1. translationZ

在视图的z中翻译.此值将添加到其高程.

必须是维值,这是一个附加单位的浮点数,例如"14.5sp".可用单位是:px(像素),dp(与密度无关的像素),sp(基于首选字体大小的缩放像素),in(英寸),mm(毫米).

这也可能是对包含此类型值的资源(格式为"@ [package:] type:name")或主题属性(格式为"?[package:] [type:] name")的引用.

这对应于全局属性资源符号translationZ.

除了"提升"之外还添加了这个?为什么需要?

  1. 而且,最令人困惑的是:setZ

设置此视图的可视z位置(以像素为单位).这相当于将translationZ属性设置为传入的x值与当前提升属性之间的差值.

我根本不明白这个的解释.这会影响阴影吗?它是干什么用的?要处理2个视图具有相同的总elavation值的情况?动画此值是否会改变视图的显示方式?

android shadow android-elevation

10
推荐指数
0
解决办法
1888
查看次数

我如何获得要提升的ListView项?

我试图得到它所以我的listview项目被提升并显示一个投影.

这是我的列表视图项布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent"
android:translationZ="5dp"
android:cropToPadding="false">

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/imageView4"
    android:background="@color/background_white"
    android:layout_alignBottom="@+id/PostUpvote"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:translationZ="2dp"

     />
Run Code Online (Sandbox Code Playgroud)

这是我的ListView布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">

<ListView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/listView"
    android:layout_gravity="center_horizontal"
    android:background="@color/background_white"
    android:dividerHeight="10sp"
    android:translationZ="2dp"/>
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激.

android android-listview android-elevation

9
推荐指数
1
解决办法
5831
查看次数

将高程阴影绘制到画布

我使用下面的代码绘制到位图/画布的视图.

Bitmap bitmap = Bitmap.createBitmap(
    viewGroup.getWidth (), viewGroup.getHeight (), Bitmap.Config.ARGB_8888);
viewGroup.draw(new Canvas(bitmap));
Run Code Online (Sandbox Code Playgroud)

它工作得很好,有一个小问题:它不会绘制高程阴影.我假设阴影不是在draw方法中绘制的.那么他们在哪里绘制,我怎样才能将它们转移到我的画布上?

android android-canvas android-elevation

9
推荐指数
1
解决办法
1075
查看次数

appCompat v24.0.0上的AppBarLayout高程更改延迟

Appcompat v24.0.0中,在Activity可见之后导致阴影/高程渲染AppbarLayout.在阴影绘图中可以很容易地看到滞后AppbarLayout.

以前的Appcompat库版本中没有这种延迟.

使用Appcompat v24.0.0Appcompat v23.4.0进行测试,在新版本中清晰显示阴影图.

android android-appcompat android-elevation

9
推荐指数
3
解决办法
5479
查看次数

单击CardView上的高程动画

我想将高程动画添加到我的中android.support.v7.widget.CardView,就像材质样式Button一样.我试过设置一个StateListAnimator:

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

它指向我的选择器res/anim:

<?xml version="1.0" encoding="utf-8"?>
<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>
</selector>
Run Code Online (Sandbox Code Playgroud)

但是Android Studio给了我错误:

必须声明元素选择器

这样做的正确方法是什么?

android android-cardview android-elevation

9
推荐指数
2
解决办法
6284
查看次数

什么是Android L中的高程?

今天我开发了我的第一个Android L应用程序,并阅读d.android.com/preview提示.他们说android:海拔会让我看到阴影.但看看这个:

<TextView
    android:id="@+id/tvTest5"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:layout_below="@id/btnTest1"
    android:layout_toRightOf="@id/tvTest4"
    android:layout_marginLeft="10dp"
    android:background="#000000"
    android:elevation="50dp"/>
Run Code Online (Sandbox Code Playgroud)

我的模拟器中没有看到任何阴影.我做错了什么还是模拟器车?我正在使用Android Studio

android android-5.0-lollipop android-elevation

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

如何向透明ImageView添加高程[android]

是否真的用包含透明背景的png实现ImageView的高程?例如:我想为此图片添加高程阴影:

在此输入图像描述

想要像这样:

在此输入图像描述

android android-elevation

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

Android 没有在带有 SVG 背景的高架视图上显示阴影

我有一个视图,我想使用 SVG/Vector 作为它的背景。所以它不是一个完美的方形、圆形或任何基本形状。我想要一个阴影来包围背景,但它不起作用。

我将设置高程,设置轮廓提供程序,甚至尝试将剪辑设置为填充,即使它正好在其布局的范围内。

<View
                android:layout_width="200dp"
                android:layout_height="300dp"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintLeft_toLeftOf="parent"
                app:layout_constraintRight_toRightOf="parent"
                android:outlineProvider="background"
                android:background="@drawable/ic_bookmark_black_24dp"
                android:elevation="5dp"/>
Run Code Online (Sandbox Code Playgroud)

(您可以使用可以从 Android Studio 导入的 Android 书签矢量资产自行测试)

仍然,没有阴影。我将背景更改为颜色的那一刻,它工作得很好

android shadow android-elevation

8
推荐指数
0
解决办法
401
查看次数