自定义View——圆形图片外层添加阴影效果

最近在看扔物线讲解的自定义View课程,感觉受益匪浅,目前还在学习过程中,今天在ui-1-2这个小结中,他提到给可以给文字设置shadow。用到的方法是setShadowLayer()这个方法。自己尝试了一下,是可以实现的,于是想到之前项目中要实现圆形图片外围加上一层阴影。网上看了半天,貌似没有这方面的解决。后来自己是用CardView包裹ImageView实现的,但是一直觉得这种方式不太好,刚好看到他讲到这点,于是想把这个方法从文字套用到图片中去,但是在实际应用过程中,同样的代码,在drawCircle中却不起作用,然后看到他博客中提到:

注意:

  • 在硬件加速开启的情况下, setShadowLayer() 只支持文字的绘制,文字之外的绘制必须关闭硬件加速才能正常绘制阴影。

  • 如果 shadowColor 是半透明的,阴影的透明度就使用 shadowColor 自己的透明度;而如果 shadowColor是不透明的,阴影的透明度就使用 paint 的透明度。

后来在网上找了一下方法,有一行代码是可以关闭硬件加速:

setLayerType(View.LAYER_TYPE_SOFTWARE,null);

当代码设置进去之后,就可以实现图片外围阴影的效果了。

这里贴一下扔物线的博客地址,真的是受益匪浅。

你可能感兴趣的:(Android,自定义View)