2014-01-11 3 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(); 
}  

Я хочу, чтобы это появиться в ImageView в XML-, но не знаете, как сделать это. Как сделать этот холст появляющимся в изображении? У меня есть растровое изображение, но я не могу подключить их все.

ответ

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() может быть плохой идеей. Это рекурсивно.

Смежные вопросы