Android-Custom View要严格保持在布局的自定义边界内
创始人
2024-08-19 17:00:37
0

要实现Android-Custom View严格保持在布局的自定义边界内,可以使用以下解决方法:

  1. 在Custom View的构造函数中,使用setWillNotDraw(false)来确保Custom View会被绘制。
public class CustomView extends View {
    public CustomView(Context context) {
        super(context);
        setWillNotDraw(false);
    }
}
  1. 在Custom View的onMeasure()方法中,根据布局的宽度和高度来确定Custom View的实际大小,并确保它不超出布局的边界。
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    int desiredWidth = ...; // 自定义宽度
    int desiredHeight = ...; // 自定义高度

    int widthMode = MeasureSpec.getMode(widthMeasureSpec);
    int widthSize = MeasureSpec.getSize(widthMeasureSpec);
    int heightMode = MeasureSpec.getMode(heightMeasureSpec);
    int heightSize = MeasureSpec.getSize(heightMeasureSpec);

    int width, height;

    if (widthMode == MeasureSpec.EXACTLY) {
        width = widthSize;
    } else if (widthMode == MeasureSpec.AT_MOST) {
        width = Math.min(desiredWidth, widthSize);
    } else {
        width = desiredWidth;
    }

    if (heightMode == MeasureSpec.EXACTLY) {
        height = heightSize;
    } else if (heightMode == MeasureSpec.AT_MOST) {
        height = Math.min(desiredHeight, heightSize);
    } else {
        height = desiredHeight;
    }

    setMeasuredDimension(width, height);
}
  1. 在Custom View的onLayout()方法中,根据布局的边界,计算Custom View的实际位置。
@Override
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
    int width = right - left;
    int height = bottom - top;

    // 计算Custom View的实际位置
    int customViewLeft = ...;
    int customViewTop = ...;
    int customViewRight = customViewLeft + width;
    int customViewBottom = customViewTop + height;

    layout(customViewLeft, customViewTop, customViewRight, customViewBottom);
}
  1. 在Custom View的onDraw()方法中,绘制Custom View的内容。
@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);

    // 在Custom View内部绘制内容
    // ...
}

通过以上步骤,Custom View就能够严格保持在布局的自定义边界内了。

相关内容

热门资讯

最新研发!wepoke算法,a... 最新研发!wepoke算法,aapoker有外挂,透明挂教程(最初真的有挂)1、许多玩家不知道aap...
透视好牌!wpk辅助工具下载,... 透视好牌!wpk辅助工具下载,新广西老友辅助,必备教程(有挂技巧);玩家必备必赢加哟《1367043...
最新科技!微扑克辅助神器,we... 自定义wepoke辅助德之星系统规律,只需要输入自己想要的开挂功能,一键便可以生成出微扑克专用辅助器...
透视科技!aapoker辅助挂... 透视科技!aapoker辅助挂,友间十三道有什么窍门,安装教程(有挂技巧)1、许多玩家不知道友间十三...
了解一款!wpk微扑克俱乐部,... 了解一款!wpk微扑克俱乐部,德州之星辅助挂,科技教程(果然真的是有挂)(1)了解一款!wpk微扑克...
透视了解!wepoker免费透... 透视了解!wepoker免费透视脚本,八闽掌上十八卦脚本,安装教程(有挂技巧)1、许多玩家不知道八闽...
终于知道!cloudpoker... 终于知道!cloudpoker云扑克,WePoKe透视挂,细节方法(最初是有挂),您好,WePoKe...
透视代打!hhpoker辅助软... 透视代打!hhpoker辅助软件,决战卡五星辅助器下载,2025新版(有挂方法);致您一封信;亲爱决...
揭秘攻略!德州之星有app辅助... 揭秘攻略!德州之星有app辅助,wpk ai辅助,力荐教程(总是真的有挂)1、很好的工具软件,可以解...
透视辅助!德普之星透视辅助软件... 透视辅助!德普之星透视辅助软件下载,丽水都来大菠萝脚本辅助,详细教程(有挂透明);最新版2024是一...