Android 设置Layout背景圆角裁剪

比如, 现在有一个FrameLayout, 里面包含了一个RecyclerView, 需要设置外层的圆角为12. 可以有如下2种方式操作:

第一种, 通过代码方式设置outline裁剪
       mFrameLayout.setOutlineProvider(new ViewOutlineProvider() {
            @Override
            public void getOutline(View view, Outline outline) {
                outline.setRoundRect(0,
                        0,
                        view.getWidth(),
                        view.getHeight(),
                        ConvertUtils.dp2px(12));
            }
        });
        mFrameLayout.setClipToOutline(true);

第一个方法设置View的轮廓, 第二个方法开始轮廓裁剪. 这样就可以只保留圆角矩形部分了.
效果图如下:


Android 设置Layout背景圆角裁剪_第1张图片
Jan-08-2020 16-40-27.gif

使用到的布局代码如下:
FrameLayoutRecyclerView

    

        
    
第二种, 通过shape方式

这种方式更简单,

  1. 直接设置一个带圆角的shape
    

    

  1. 开启View的轮廓裁剪
mFrameLayout.setClipToOutline(true);
其他, 用到的RecyclerView的Item代码

你可能感兴趣的:(Android 设置Layout背景圆角裁剪)