我想知道是否可以从路径中选择坐标来随着时间的推移绘制位图,例如,我有一张太阳的图像,我想随着时间的推移沿着弧形路径移动它。
有没有什么方法可以定义这样的路径,然后沿着它移动,这样我就不必进行数学计算?
Thanks.
是的,可以沿着路径移动图像。我将提供简单的解决方案来展示原理。以下代码将移动和旋转您的图像。如果不需要旋转,请删除 TANGENT_MATRIX_FLAG 标志。
import android.graphics.*;
//somewhere global
int iCurStep = 0;// current step
//don't forget to initialize
Path pathMoveAlong = new Path();
private static Bitmap bmImage = null;
@Override
protected void onDraw(Canvas canvas) {
Matrix mxTransform = new Matrix();
PathMeasure pm = new PathMeasure(pathMoveAlong, false);
float fSegmentLen = pm.getLength() / 20;//20 animation steps
if (iCurStep <= 20) {
pm.getMatrix(fSegmentLen * iCurStep, mxTransform,
PathMeasure.POSITION_MATRIX_FLAG + PathMeasure.TANGENT_MATRIX_FLAG);
canvas.drawBitmap(bmImage, mxTransform, null);
iCurStep++;
invalidate();
} else {
iCurStep = 0;
};
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)