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));