嗨我想在画布上绘制路径,但它没有做任何事情,也没有绘制画布。
我的代码:
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
的默认值。
感谢
答案 0 :(得分:8)
Canvas
只是用于绘制Bitmap
的“工具”。您需要以这种方式关联它们:
Canvas canvas = new Canvas(someBitmap);
但是这只能让你在someBitmap上绘制。如果要在视图中绘制,则必须使用您提供的onDraw(Canvas)
在Canvas
中进行绘制,该onDraw()
已经与真实视图绘图的位图绑定。
要使用View
,您必须制作自定义视图(即从某些SurfaceView
扩展)。
然后有{{1}},但这是另一回事(我对此并不了解)。