在android中如何在视图中绘制路径

在android中如何在视图中绘制路径,android,Android,嗨,我需要画一条简单的线到画布的路径,它应该用白线写出红色的矩形,但它没有画出我缺少的东西。 我的代码: Canvas Canvas=newcanvas(); 油漆=新油漆(); 绘制.设置样式(绘制.样式.填充); 油漆。设置颜色(颜色。红色); 帆布.拉丝漆(油漆); 路径路径=新路径(); //画布。drawColor(颜色。青色); 对于(int i=5;i

嗨,我需要画一条简单的线到画布的路径,它应该用白线写出红色的矩形,但它没有画出我缺少的东西。 我的代码:

Canvas Canvas=newcanvas();
油漆=新油漆();
绘制.设置样式(绘制.样式.填充);
油漆。设置颜色(颜色。红色);
帆布.拉丝漆(油漆);
路径路径=新路径();
//画布。drawColor(颜色。青色);
对于(int i=5;i<50;i++){
路径移动到(4,i-1);
线路图(4,i);
}
path.close();
油漆。设置行程宽度(3);
paint.setPathEffect(空);
油漆。设置颜色(颜色。白色);
绘制.设置样式(绘制.样式.笔划);
画布.绘制路径(路径,绘制);
对于(int i=0;i<3;i++){
视图iview=充气机充气(R.layout.linear_layout,null);
如果(i==0){
iview.findviewbyd(R.id.imageView1)、setBackgroundResource(R.drawable.distspeed);
}
如果(i==1){
iview.findviewbyd(R.id.imageView1).setBackgroundResource(R.drawable.hxmdist);
}
如果(i==2){
iview.findviewbyd(R.id.imageView1)、setBackgroundResource(R.drawable.hxmspeed);
}
iview.draw(画布);
realViewSwitcher.addView(iview);
}

我只发布工作代码:

修改的活动:

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

        MyView mView = new MyView(this,i);

        realViewSwitcher.addView(mView);
        }
for(int i=0;i<2;i++){
MyView mView=新的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);
    }

}
公共类MyView扩展了视图{
公共MyView(上下文,int kolki){
超级(上下文);
if(kolki==0){
这个.setBackgroundResource(R.drawable.distspeed);
}
if(kolki==1){
这个.setBackgroundResource(R.drawable.hxmdist);
}
}
公共资源(内部剩余){
超级挫折资源(resid);
} 
公共空白onDraw(画布c){
super.onDraw(c);
油漆=新油漆();
路径路径=新路径();
绘制.设置样式(绘制.样式.填充);
油漆.setColor(颜色.透明);
c、 油漆;
对于(int i=50;i<100;i++){
路径移动到(i,i-1);
线路图(i,i);
}
path.close();
油漆。设置行程宽度(3);
paint.setPathEffect(空);
油漆。设置颜色(颜色。黑色);
绘制.设置样式(绘制.样式.笔划);
c、 绘制路径(路径、绘制);
}
}

不适合我,但我找到了解决方案,我必须创建自己的视图,在onDraw过程中,我能够绘制出路径。不建议在
onDraw
中分配对象,因此应在构造函数中分配
Paint
Path
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);
    }

}