在android中,如何等待路径在画布上绘制?
我的列表中有不同的路径,我想一次在画布上绘制一条路径,但我正在执行for循环,在绘制一条路径时,另一条路径开始在画布上绘制。 如何停止for循环或等待绘制路径。 下面给出了for循环在android中,如何等待路径在画布上绘制?,android,svg,path,android-canvas,androidsvg,Android,Svg,Path,Android Canvas,Androidsvg,我的列表中有不同的路径,我想一次在画布上绘制一条路径,但我正在执行for循环,在绘制一条路径时,另一条路径开始在画布上绘制。 如何停止for循环或等待绘制路径。 下面给出了for循环 for ( i = 0; i < mPaths.size(); i++) { SvgHelper.SvgPath svgPath = mPaths.get(i); svgPat
for ( i = 0; i < mPaths.size(); i++) {
SvgHelper.SvgPath svgPath = mPaths.get(i);
svgPath.paint.setAlpha(255);
canvas.drawPath(svgPath.path, svgPath.paint);
}
for(i=0;i
onDraw(画布)方法代码。
mPaths列表变量的大小为24。
问题是我想一次画一条路径,但当我把它保持在循环中时,所有24条路径都是同时画的
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
// Log.w("On draw", "Executing Ondraw");
synchronized (mSvgLock) {
canvas.save();
canvas.translate(getPaddingLeft(), getPaddingTop()
- getPaddingBottom());
canvas.save();
canvas.translate(getPaddingLeft(), getPaddingTop()
- getPaddingBottom());
for (i = 0; i < mPaths.size(); i++) {
//
Log.w("no of times", String.valueOf(i));
//
synchronized (Lock) {
SvgHelper.SvgPath svgPath = mPaths.get(i);
svgPath.paint.setAlpha(255);
canvas.drawPath(svgPath.path, svgPath.paint);
}
// break;
}
canvas.restore();
}
canvas.save();
canvas.translate(0.0f, getHeight() - getPaddingBottom() - mRadius
* 3.0f);
}
@覆盖
受保护的void onDraw(画布){
super.onDraw(帆布);
//Log.w(“提款”、“执行Ondraw”);
已同步(mSvgLock){
canvas.save();
translate(getPaddingLeft(),getPaddingTop())
-getPaddingBottom());
canvas.save();
translate(getPaddingLeft(),getPaddingTop())
-getPaddingBottom());
对于(i=0;i
您可以创建一个用于锁定的对象,并将核心代码放入同步块中
试试这个
Object lock = new Object();
for ( i = 0; i < mPaths.size(); i++) {
synchronized (lock) {
SvgHelper.SvgPath svgPath = mPaths.get(i);
svgPath.paint.setAlpha(255);
canvas.drawPath(svgPath.path, svgPath.paint);
}
}
对象锁=新对象();
对于(i=0;i
谢谢。我试过这个,但不起作用。它的画是一样的。发布了我的onDraw(Canvas Canvas)方法代码。如果我理解正确,您需要为绘图设置动画,因此在绘图循环中不应使用list.size(),而应使用从1到list.size()的变量变量在onDraw的末尾增加,并使用invalidate taskSorry@curioushikhov调用invalidate或postdayed方法,但请您解释一下您的意思。因为我没有得到..多线程绘制路径?没有onDraw()方法运行24次绘制路径对象,直到绘制的每个路径对象都没有遇到path.close@Marcacierno在本视频中,所有路径都是同时绘制的,我想一个接一个地绘制路径。。视频显示了我的路径是如何绘制的。