android 中间凸出按钮,一个不一样的凸起按钮(raised button)

自动引入Material Design之后,安卓有了三种按钮:浮动操作按钮

凸起按钮(Raised buttons)

扁平按钮

根据说明文档,凸起按钮的定义是:A typically rectangular material button that lifts and displays ink reactions on press.

但是为什么要抬起呢?难道你的手指是磁铁吗?当你按下一个真实的按钮,压力会使按钮下陷才对。

默认的实现

从那个文件我们可以看到:

当按下按钮,发生z轴位移(4dp),将按钮从2dp提高到6dp。

当按钮没有被按下时,elevation为2dp。

当按钮禁用时,elevation变为0dp。

我所做的就是创建一个类似的,但是和它使用正的z-translation和2dp elevation不同,我把两者都设为0.

让按钮下陷

这里是一个能让按钮下陷的StateListAnimator:链接。

现在你可以使用android:stateListAnimator属性把它设置到按钮上,但是这个方法不能让你使用另外的elevation,因为其值是硬编码的。

鉴于这个原因,我创建了一个自定义的StateListAnimator,可以在代码中使用传递给view的elevation。

你可以在这里获得它:RaiflatButton。(名字很丑,但想不出更好的了)。

现在你只需把普通的按钮替换成:

android:id="@+id/normalButton"

style="@style/Base.Widget.AppCompat.Button.Colored"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Colored" />

android:id="@+id/imageButton"

style="@style/Base.Widget.AppCompat.Button"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:src="@drawable/ic_android" />

这里是一个简短的预览效果:

1477915293263225.gif

怎么样,看起来是不是自然多了?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值