我在画布上画了一条路径,如图所示
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
path.moveTo(X, Y);
path.lineTo(X+20, Y);
canvas.drawPath(path, paint);
invalidate();
}
我希望它出现在xml的imageView中,但不知道如何做到这一点。 如何让这个画布出现在imageview中?我有一个位图,但无法连接所有这些。
答案 0 :(得分:0)
Path path=new Path();
path.moveTo(50, 50);
path.lineTo(50, 50);
ShapeDrawable star =
new ShapeDrawable(new PathShape(path, 100, 100));
star.setIntrinsicHeight(100);
star.setIntrinsicWidth(100);
star.getPaint().setColor(Color.RED);
star.getPaint().setStyle(Paint.Style.STROKE);
ImageView iView = (ImageView)findViewById(R.id.ImageView1);
iView.setImageDrawable(star);
答案 1 :(得分:0)
为什么不像这样扩展ImageView并覆盖onDraw:
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
path.lineTo(X + 20, Y);
canvas.drawPath(path, paint);
}
除了您的路径之外,ImageView
中的所有内容都将被绘制。
如果这不是您想要的,那么这可能会有所帮助link
在invalidate()
中调用onDraw()
可能不太好。它是递归的。