Android使用ViewOutlineProvider实现圆角

2020-06-08  本文已影响0人  因为我的心

一、前言:

幸运的是,在5.0以后Android提供了ViewOutlineProvider,可以为View动态设置圆角,再也不需要通过背景图来实现圆角了。

@TargetApi(Build.VERSION_CODES.LOLLIPOP)
private void setBgRadius(View layoutContent, int bgRadius) {
  if (Build.VERSION.SDK_INT >= 21) {
  //设置圆角大小
  view.setOutlineProvider(new ViewOutlineProvider() {
           @Override
           public void getOutline(View view, Outline outline) {
               //设置矩形
               outline.setRoundRect(0, 0, view.getWidth(), view.getHeight(), radius);
               // 可以指定圆形,矩形,圆角矩形,path
               //outline.setOval(0, 0, view.getWidth(), view.getHeight()
           }
       });
    //设置阴影
    view.setElevation(10);
   //设置圆角裁切
    view.setClipToOutline(true);
    }

}

注意: 该API在5.0以后才有,如果你的应用支持5.0以下,需要做好兼容,不过现在5.0以下的系统一般暂也不考虑了吧。

//调用
setBgRadius(view, (int) getResources().getDimension(R.dimen.dp_4));

参考:https://www.cnblogs.com/McCa/p/4465597.html

上一篇 下一篇

猜你喜欢

热点阅读