zoukankan      html  css  js  c++  java
  • onLayout初始化裁剪信息

    在EasyConstraintLayout中初始化LayoutParamsData的paths

    @Override
    protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
    super.onLayout(changed, left, top, right, bottom);
    for (int i = 0, size = getChildCount(); i < size; i++) {
    View v = getChildAt(i);
    ViewGroup.LayoutParams lp = v.getLayoutParams();
    if(lp instanceof EasyLayoutParams){
    EasyLayoutParams elp = (EasyLayoutParams) lp;
    elp.getData().initPaths(v);
    }
    }
    }
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    在LayoutParamsData中将裁剪阴影的path和裁剪子view的保存起来,新增两个属性

    public class LayoutParamsData {
    Path widgetPath;
    Path clipPath;
    boolean needClip;
    boolean hasShadow;
    public LayoutParamsData(Context context, AttributeSet attrs) {

    needClip = radius > 0;
    hasShadow = shadowEvaluation > 0;
    }
    public void initPaths(View v) {
    widgetPath = new Path();
    clipPath = new Path();
    clipPath.addRect(widgetRect, Path.Direction.CCW);
    clipPath.addRoundRect(
    widgetRect,
    radius,
    radius,
    Path.Direction.CW
    );
    widgetPath.addRoundRect(
    widgetRect,
    radius,
    radius,
    Path.Direction.CW
    );
    }
    }
    --------------------- 

  • 相关阅读:
    ZD ZDC数据类型 sort
    常识
    面试
    无锡
    sqlldr return code
    025:为什么需要将Logger对象声明为private static final类型的
    中级职称
    《宪法》关于全国人民代表大会的规定
    python打包成exe
    请问.AE和PR有什么区别?
  • 原文地址:https://www.cnblogs.com/ly570/p/11284706.html
Copyright © 2011-2022 走看看