将画布设置为imageview

时间:2014-01-11 13:14:21

标签: android canvas android-imageview

我在画布上画了一条路径,如图所示

@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中?我有一个位图,但无法连接所有这些。

2 个答案:

答案 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()可能不太好。它是递归的。