2011-05-12 66 views
8

喜认为我需要绘制路径简洁的线条,应该写出来的红色长方形白色画布lines.but它不画了什么,我缺少什么M。 我的代码:如何绘制路径到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

不适合我,但我找到了解决办法,我必须创建自己的视图,并且在onDraw过程中,我能够绘制出路径 – Csabi 2011-05-13 09:47:58

回答

11

我只张贴工作代码:

修改活动:

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); 
    } 

}