给任意view设置圆角outline.setRoundRect()方法实现

给任意view设置圆角outline.setRoundRect()方法实现

//圆角方法 @TargetApi(Build.VERSION_CODES.LOLLIPOP) public void setClipViewCornerRadius(View view, final int radius) {

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
            //不支持5.0版本以下的系统
            return;
        }

        if (view == null) return;

        if (radius <= 0) {
            return;
        }
        view.setOutlineProvider(new ViewOutlineProvider() {

            @Override
            public void getOutline(View view, Outline outline) {

// outline.setRoundRect(20, 20, view.getWidth()-40, view.getHeight()-40, radius); outline.setRoundRect(40, 0, view.getWidth()-40, view.getHeight(), radius);//这是设置圆角的关键设置

// Rect rect = new Rect(); // view.getGlobalVisibleRect(rect); // int leftMargin = 40; // int topMargin = 40; // Rect selfRect = new Rect(leftMargin, topMargin, // rect.right - rect.left - leftMargin, rect.bottom - rect.top - topMargin); // outline.setRoundRect(selfRect, 30); } }); view.setClipToOutline(true);

}
经验分享 程序员 微信小程序 职场和发展