一个带阴影的控件

作者: neo_wang | 来源:发表于2017-04-11 11:48 被阅读0次

最近项目有一需求是这样的,一个类似于CardView的控件上覆盖了一个Button。


效果图

如果用CardView,那么Button的z轴必须在CardView上方,那么Button就会出现阴影,着不符合UED要求,所以就重新写一个控件,可以带阴影效果,并且忽略z轴。
** 关键思路**
自定义控件重写onDraw方法,用画笔Paint去绘制阴影。
关键代码:

@Override
protected voidonDraw(Canvas canvas) {
setLayerType(LAYER_TYPE_SOFTWARE, null);//必须硬件不加速
Paint paint =newPaint();
paint.setColor(bgColor);
paint.setShadowLayer(shadowRadius,offset_x,offset_y,shadowColor);
canvas.drawRoundRect(newRectF(shadowRadius+offset_x,shadowRadius+offset_y,width-shadowRadius+offset_x,height-shadowRadius+offset_y),radius_x,radius_y,paint);
super.onDraw(canvas);
}

shadowColor : 阴影颜色
bgColr:背景颜色
shadowRadius:阴影半径
offset_x:阴影x轴偏移量
offset_y:阴影y轴偏移量
radius_x:圆角半径x
radius_y:圆角半径y

Tips:要绘制阴影,必须关闭硬件加速
项目地址:github.com/wangjianchi/ShadowLinearLayout.git

相关文章

  • 一个带阴影的控件

    最近项目有一需求是这样的,一个类似于CardView的控件上覆盖了一个Button。 效果图 如果用CardVie...

  • 带圆角控件设置阴影

    分析原因:因为代码中设置了masksToBounds属性为YES了,将后面设置的阴影效果给裁剪掉了,所以我们看不到...

  • ios开发中遇到过的问题

    1.SDWebImage篇 2.控件阴影篇 再加一句话:如果把其他控件加到设置阴影的视图上,子控件也会有阴影。所以...

  • 简单好用的阴影库 ShadowLayout

    在开发过程中常会遇见带阴影效果的控件,通过 SDK 提供的 CardView 和 android:elevatio...

  • Android 5.0 elevation 设置阴影无效

    elevation 设置阴影需要注意两点:1、view需要设置背景2、阴影是绘制在父控件上的,子控件和父控件之间要...

  • 实现 Android 的 ShadowLayout

    Android 里面并没有带阴影相关的参数控件之类,特别是能满足设计师要求的...于是实现了一个 ShadowLa...

  • flutter控件Material

    是个没有实际效果的控件,也是个底层的控件,可以用来设置阴影,形状,阴影,颜色,文字格式等等 示例

  • Android控件阴影

    Android控件阴影 使用Android21之后新的控件属性elevation和translationZ类似:<...

  • 控件阴影制作

  • 控件添加阴影

    添加阴影的代码如下 当view没有子控件的时候这样设置没问题 当有子view有需要设置圆角的时候就会出现问题,圆角...

网友评论

    本文标题:一个带阴影的控件

    本文链接:https://www.haomeiwen.com/subject/zgmyattx.html