2014-01-11 61 views
0

我有一个画布上绘制的路径,如图设置画布的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中?我有一个位图,但无法连接所有这些。

回答

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); 
+0

请参阅最新的代码。 –

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()可能是坏的想法是什么。它是递归的。