Material Design :Elevation + TranslationZ
Elevation + TranslationZ这2个概念是AAndroid5.0(API=21)才引入的,都是代表控件浮起来的高度google Android Sample: https://developer.android.google.cn/samples/ElevationBasic/index.htmlDemo: http://git.oschina.net/Android5x/El
·
Elevation + TranslationZ
这2个概念是AAndroid5.0(API=21)才引入的,都是代表控件浮起来的高度
google Android Sample: https://developer.android.google.cn/samples/ElevationBasic/index.html
Demo: http://git.oschina.net/Android5x/Elevation01
Elevation 和 TranslationZ的区别
参考:elevation 和 translationZ的区别
Z轴阴影: Z = elevation + translationZ
elevation 是静态值,是View在Z轴上的初始值
translationZ是动态值,是Z上的偏移变化
视图的 Z 值包含两个组件
- 高度:静态组件。
转换:用于动画的动态组件。
Z = elevation + translationZ
android:elevation
:API>=21
android:elevation="50dp"
app:cardElevation:
没有限制
app:cardElevation="50dp"
在xml中都可以设置
android:elevation="30dp"
android:translationZ="30dp"
在java中也有对应的设置方法
setElevation(100)
setTranslationZ(50)
Demo
<View
android:id="@+id/view_blue"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_centerInParent="true"
android:background="@drawable/shape"
android:elevation="10dp"/>
<View
android:id="@+id/view_red"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_centerVertical="true"
android:layout_marginStart="180dp"
android:background="@color/colorAccent"/>
点击按钮后,提高控件Z轴的高度,再次点击Z轴的值变到初始值。
//点击后让红色按钮移到上方
view_red.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.d(TAG, "点击了红色按钮");
if (flag) {
view.setTranslationZ(0);//Api>=21
flag = false;
} else {
view.setTranslationZ(20);//Api>=21
flag = true;
}
}
});
按下按钮的时候,提高控件在Z轴的高度;松开后Z轴的值变到初始值
//返回false表示不处理触摸事件,那么点击事件setOnClickListener(...)才有效
view_red.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
switch (motionEvent.getAction()) {
case MotionEvent.ACTION_DOWN:
view_red.setElevation(100);
// view_red.setTranslationZ(50);
break;
case MotionEvent.ACTION_UP:
view_red.setElevation(0);
// view_red.setTranslationZ(0);
break;
}
return false;
}
});
更多推荐
已为社区贡献3条内容
所有评论(0)