使用ViewOutlineProvider来实现,ViewOutlineProvider专门用于阴影投射和剪切。
相关方法:
1. setOutlineProvider()
生成定义其投射阴影形状的轮廓,并且启用轮廓裁剪。
2. setClipToOutline()
设置是否应使用视图轮廓来剪切视图的内容
定义一个圆形的ViewOutlineProvider:
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
public static class CircleViewOutlineProvider extends ViewOutlineProvider {
public CircleViewOutlineProvider() {
}
@Override
public void getOutline(View view, Outline outline) {
//864,648 横屏情况下,宽>高
Log.d("Circle===","width:"+view.getWidth()+"==height:"+view.getHeight());
//裁剪成一个圆形
int left0 = (view.getWidth() - view.g