当animatedProgressPercentage = 0f时,以下代码从我的路径开始到我的路径的中途,当它达到1f时,它将接近结束。
dashPathEffect = new DashPathEffect( new float[]{
new PathMeasure(path, false).getLength()/4f, // length of intervals 'on'
aVeryLargeNumber}, // length of intervals 'off'
0f - (pathLength/2f)*animatedProgressPercentage); // offset length to start (aka phase)
paint.setPathEffect(dashPathEffect);
当我将/4f
切换为/8f
时,一半变为四分之一。我的问题是,为什么不/4f
画出四分之一的路径?为什么我需要在阶段中将pathLength除以2?为什么它只是接近结束而不是整个事情?
我也在做这个
viewRect.set(0, 0, w, h);
m.setRectToRect(boundsRect, viewRect, Matrix.ScaleToFit.CENTER);
path.transform(m);
但使用scale = viewRect.width() / boundsRect.width();
作为乘数似乎根本没有帮助。也许我完全误解了DashPathEffect的预期用法,或者我需要在这里显示更多代码以便自己理解?请让我知道!