同じ相対レイアウトで複数のパスを描画する際に多くの問題が発生しています。何が起こるかというと、すべてのパスが最初に描かれたのと同じ場所に描かれているということです。代わりに、描画された各パス/キャンバスを縮小して、ページに並べて表示したいと考えています。
パスを描画する私のコードは次のようになります
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);
}
s の他の提案に従ってTextView
、カスタム レイアウト パラメータを追加して互いTextView
の下に表示しますが、これは動的に描画されたパスでは機能しないようです。
注: View を拡張し、パスを描画するメソッドをCustomView
上書きするクラスです。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);
}
}