最近在看扔物线讲解的自定义View课程,感觉受益匪浅,目前还在学习过程中,今天在ui-1-2这个小结中,他提到给可以给文字设置shadow。用到的方法是setShadowLayer()这个方法。自己尝试了一下,是可以实现的,于是想到之前项目中要实现圆形图片外围加上一层阴影。网上看了半天,貌似没有这方面的解决。后来自己是用CardView包裹ImageView实现的,但是一直觉得这种方式不太好,刚好看到他讲到这点,于是想把这个方法从文字套用到图片中去,但是在实际应用过程中,同样的代码,在drawCircle中却不起作用,然后看到他博客中提到:
注意:
-
在硬件加速开启的情况下,
setShadowLayer()
只支持文字的绘制,文字之外的绘制必须关闭硬件加速才能正常绘制阴影。 -
如果
shadowColor
是半透明的,阴影的透明度就使用shadowColor
自己的透明度;而如果shadowColor
是不透明的,阴影的透明度就使用paint
的透明度。
后来在网上找了一下方法,有一行代码是可以关闭硬件加速:
setLayerType(View.LAYER_TYPE_SOFTWARE,null);
当代码设置进去之后,就可以实现图片外围阴影的效果了。
这里贴一下扔物线的博客地址,真的是受益匪浅。