2011-05-12 8 views
8

Hola necesito dibujar un trazado de líneas simples para el lienzo que debe escribir el rectángulo rojo con líneas blancas. Pero no extrae nada de lo que me falta. mi código:cómo dibujar la ruta en la vista en android

Canvas canvas = new Canvas(); 


     Paint paint = new Paint(); 

     paint.setStyle(Paint.Style.FILL); 
     paint.setColor(Color.RED); 
     canvas.drawPaint(paint); 
     Path path = new Path(); 
     //canvas.drawColor(Color.CYAN); 

     for (int i = 5; i < 50; i++) { 

      path.moveTo(4, i-1); 
      path.lineTo(4, i); 

     } 
     path.close(); 

     paint.setStrokeWidth(3); 
     paint.setPathEffect(null); 
     paint.setColor(Color.WHITE); 
     paint.setStyle(Paint.Style.STROKE); 

     canvas.drawPath(path, paint); 

     for (int i = 0; i < 3; i++) { 
      View iview = inflater.inflate(R.layout.linear_layout, null); 
      if(i == 0){ 
       iview.findViewById(R.id.imageView1).setBackgroundResource(R.drawable.distspeed); 
      } 
      if(i == 1){ 
       iview.findViewById(R.id.imageView1).setBackgroundResource(R.drawable.hxmdist); 
      } 
      if(i == 2){ 
       iview.findViewById(R.id.imageView1).setBackgroundResource(R.drawable.hxmspeeed); 
      } 

      iview.draw(canvas); 

      realViewSwitcher.addView(iview); 
     } 
+0

para mí, pero he encontrado la solución, tuve que crear mi propia vista y en el procedimiento onDraw pude dibujar el camino – Csabi

Respuesta

11

i solamente el código de trabajo: actividad

modificación:

for (int i = 0; i < 2; i++) { 

     MyView mView = new MyView(this,i); 

     realViewSwitcher.addView(mView); 
     } 

myview:

public class MyView extends View { 

    public MyView(Context context, int kolki) { 
     super(context); 

     if (kolki == 0){ 
      this.setBackgroundResource(R.drawable.distspeed); 
     } 
     if (kolki == 1){ 
      this.setBackgroundResource(R.drawable.hxmdist); 
     } 
    } 

    public void setBackgroundResource (int resid){ 
     super.setBackgroundResource(resid); 
    } 

    public void onDraw(Canvas c){ 
     super.onDraw(c); 
     Paint paint = new Paint(); 
     Path path = new Path(); 
     paint.setStyle(Paint.Style.FILL); 
     paint.setColor(Color.TRANSPARENT); 
     c.drawPaint(paint); 
     for (int i = 50; i < 100; i++) { 
       path.moveTo(i, i-1); 
       path.lineTo(i, i); 
     } 
     path.close(); 
     paint.setStrokeWidth(3); 
     paint.setPathEffect(null); 
     paint.setColor(Color.BLACK); 
     paint.setStyle(Paint.Style.STROKE); 
     c.drawPath(path, paint); 
    } 

} 
No
Cuestiones relacionadas