本文导航:
1、实现方式
2、说明与传统方式
正文
1、代码调用
View view;
UiHelper.setOutline(view,10);
//工具类方法
public class UiHelper {
/**
* 设置视图裁剪的圆角半径, 不支持5.0版本以下的系统
* @param radius
*/
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public static void setOutline(View view, final int radius) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
//不支持5.0版本以下的系统
return;
}
if (view == null || radius <= 0) {
return;
}
view.setOutlineProvider(new ViewOutlineProvider() {
@Override
public void getOutline(View view, Outline outline) {
outline.setRoundRect(0, 0, view.getWidth(), view.getHeight(), radius);
//设置圆形控件
// outline.setOval(0,0,view.getWidth(),view.getHeight());
}
});
view.setClipToOutline(true);
}
}
2、说明及传统方式
a.可以传入各种view,安卓系统5.0以上。radius就是圆角的半径。
b. 传统方式需要添加一个圆角背景,稍显复杂。或者圆形图需要自定义和图片剪切计算。不如官方的这种支持方式。