【发布时间】:2013-08-26 23:26:50
【问题描述】:
我想在路径上创建移动箭头,如下所示:
怎么可能?
编辑:
我以这种方式成功创建了这些移动箭头: 我将路径划分为相同的部分,并在每个部分的开头放置了一个箭头。然后所有箭头的位置都会定期更新,当它们结束时,我只是将它们的位置设置为开始。
移动我使用this example of moving object along path 实现的箭头。现在的问题是我想让箭头在路径的中间,而不是在它的上方或下方。怎么可能?
这是 onDraw 方法:
@Override
protected void onDraw(Canvas canvas) {
canvas.drawBitmap(bmBackground, rSrc, rDest, null);
canvas.drawPath(ptCurve, paint);
//animate the sprite
Matrix mxTransform = new Matrix();
if (iCurStep <= iMaxAnimationStep) {
pm.getMatrix(fSegmentLen * iCurStep, mxTransform,
PathMeasure.POSITION_MATRIX_FLAG + PathMeasure.TANGENT_MATRIX_FLAG);
mxTransform.preTranslate(-bmSprite.getWidth(), -bmSprite.getHeight());
canvas.drawBitmap(bmSprite, mxTransform, null);
iCurStep++; //advance to the next step
invalidate();
} else {
iCurStep = 0;
}
}
pm 是 PathMeasure。
【问题讨论】:
-
你在用什么我看到 java 和 Android 但更具体的类是什么?
-
我已经改写了这个问题,现在它表明了对正在解决的问题的最低限度的理解 - 请问可以再次打开它吗?
-
不是上下,而是中间是什么意思?
-
感谢大家的回复,如果你看this,你可以看到图像实际上是在线上而不是居中(如果头部在线上方,身体在下方,则居中)它)。在我发布的图片上,箭头位于那条线上(但它很小,所以它在里面)。
-
所以你的问题是箭头骑在线的一边,但你希望它在中心?
标签: java android path android-canvas