gpt4 book ai didi

java - 使用路径绘制多个 View (Android)

转载 作者:行者123 更新时间:2023-12-01 14:06:32 24 4
gpt4 key购买 nike

在同一相对布局中绘制多个路径时,我遇到了很多问题。发生的情况是,我的所有路径都绘制在最初绘制的同一位置。相反,我想缩小每个绘制的路径/ Canvas ,并将它们并排显示在页面上。

我绘制路径的代码看起来像

    for (int x=0; x < paths.size(); x++){
DrawView dw = new CustomView(this);
dw.path = paths.get(x);
dw.paint = paints.get(x);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
if (x == 0){

} else {
params.addRule(RelativeLayout.BELOW, x-1);
}
dw.setId(x);
layout.addView(dw, params);
}

我遵循了针对 TextView 的其他建议,添加了自定义布局参数以在彼此下方显示每个 TextView,但这似乎不适用于动态绘制的路径。

注意:CustomView 是一个扩展 View 的类,并覆盖 onDraw 方法来绘制我的路径。

编辑:

如果它有帮助我的自定义类看起来像

public class CustomView extends View {

public Path path;
public Paint paint = new Paint();

public CustomView(Context context){
super(context);
paint.setAntiAlias(true);
paint.setColor(Color.BLACK);
paint.setStyle(Paint.Style.STROKE);
}

@Override
protected void onDraw(Canvas canvas){
canvas.drawPath(path, paint);
}
}

最佳答案

你有必要使用RelativeLayout吗?如果它不是太具有约束力,请考虑使用 LinearLayout 来替换RelativeLayout,或者包含在RelativeLayout 中。然后你可以将所有的CustomView添加到这个LinearLayout中,并将LinearLayout.LayoutParams中的权重字段设置为1。

或者,考虑手动将每个 CustomView 的高度设置为 getHeight()/(paths.size()),而不是relativelayout.layoutparams.wrap_content。

关于java - 使用路径绘制多个 View (Android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18856123/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com