安卓阴影的实现
被安卓的阴影折腾了好多天, 总算有个完美的方案了. 在Github上找了很多阴影的库, 不清楚是版本问题还是兼容问题, 不能如愿
而Material自带的evaluation高度属性的阴影貌似无法定制阴影的颜色, shadowColor之类的属性不能应用于按钮
现记录下目前来说最佳解决方案
http://inloop.github.io/shadow4android/
-
Round: 圆角, 需要和Button的background的圆角一直 -
Shadow blur: 阴影模糊 -
Shadow color:阴影颜色, 这里有个bug,#3f59ff33填上这样的RGBA颜色, 后面的透明值会自动删除, 骚操作是填上33然后立即点下载 -
Shadow offset: 阴影偏移, 如果这里填了Y的值, 后面需要进行 ##对应设置## -
Box size: 这里填的是最小值, 如果这个设置不对那么在实际的机子上被压缩的时候就显示不正常了, 一般要比设计图上的小 -
Padding size: 如果 X = 0 , Y=10 那么对应这里的 Top 要设置为10, 这样可以确保到时候按钮文字仍然在按钮的"中间"
目前这样的设置方法适合需要将按钮浮起的阴影效果
下载后的使用方法:
- 拖到drawable
- 在原来的 Button的background的drawable里加上
即可 - 根据情况调整margin, 如果显示阴影不正常, 回到那个网站跳转设置
上代码
.9.png的设置
Round=30和下文的corners的Radius一致Shadow blur根据情况设置, 我这是20Shadow color=#3f59ff33末尾的33表示20%透明, 记得在下载前设置, 否则会被自动重置为6位的HEX值Shadow offset:Y=10, 向下偏移10Fill & Outline不启用, 因为中央的透明用来放自己的渐变背景Box sizeWidth和Height输入较小的值, 一定要比设计图上小Padding lines放在默认两端即可, 表示可四面八方拉伸, 对于给按钮加阴影来说这样就可以Side clipping边缘裁剪, 不勾Padding sizeTop=10对应上面的Shadow offset, 这样才能保证到时候Button的文字会在"主体的中间"- 回到第三步加上
33,点下载即可
一个按钮的背景drawable
|
|
按钮使用的style
|
|
用到的网站
最后是效果
