如何在android中绘制到canvas的路径?

Csa*_*abi 2 android canvas

嗨我想绘制画布的路径,但它没有做任何事情,它也没有绘制画布.
我的代码:

Path path = new Path();
Canvas canvas = new Canvas();

Paint paint = new Paint();
paint.setColor(Color.BLACK);

canvas.drawColor(Color.CYAN);

for (int i = 5; i < 50; i++)
{
    path.setLastPoint(4, i - 1);
    path.lineTo(4, i);
}
path.close();
for (int i = 0; i < 5; i++)
{
    View iview = inflater.inflate(R.layout.linear_layout, null);
    iview.findViewById(R.id.imageView1);//.setBackgroundColor(backgroundColors[i]);

    ShapeDrawable mDrawable = new ShapeDrawable(new OvalShape());
    mDrawable.getPaint().setColor(Color.YELLOW);
    mDrawable.setBounds(10, 10, 15, 15);

    canvas.drawPath(path, paint);
    mDrawable.draw(canvas);

    iview.draw(canvas);
    realViewSwitcher.addView(iview);
}
Run Code Online (Sandbox Code Playgroud)

它只显示绿色,这是默认值view.backroundColor.

谢谢

big*_*nes 8

Canvas只是一个用于绘制的"工具" Bitmap.您需要以这种方式关联它们:

Canvas canvas = new Canvas(someBitmap);
Run Code Online (Sandbox Code Playgroud)

但是这只能让你在someBitmap上绘制.如果你想在视图中绘制,你必须onDraw(Canvas)使用Canvas你提供的,它已经与真实视图的绘图位图绑定.

要使用onDraw(),您必须创建自定义视图(即从某些视图扩展View).

然后有,SurfaceView但那是另一回事(我不太了解它).