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

时间:2011-05-08 16:30:35

标签: 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);
}

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

感谢

1 个答案:

答案 0 :(得分:8)

Canvas只是用于绘制Bitmap的“工具”。您需要以这种方式关联它们:

Canvas canvas = new Canvas(someBitmap);

但是这只能让你在someBitmap上绘制。如果要在视图中绘制,则必须使用您提供的onDraw(Canvas)Canvas中进行绘制,该onDraw()已经与真实视图绘图的位图绑定。

要使用View,您必须制作自定义视图(即从某些SurfaceView扩展)。

然后有{{1}},但这是另一回事(我对此并不了解)。