我正在尝试在相机上绘制球动画,这就是我必须使用类View而不是SurfaceView的原因。关键是,当我运行我的应用程序时,动画有时会正确绘制,但如果我回到之前的活动,并返回到它,则球绘制非常慢。 要调用OnDraw方法,我使用的是acelerometer:
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
mView.invalidate();
}
}
这是我的OnDraw方法:
public void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.save();
parabolic.getPositions();
int positionY = parabolic.pixY;
int positionX = parabolic.pixX;
ball.setBounds(positionX, positionY,
(int) (positionX + ball.getIntrinsicWidth()),
(int) (positionY + ball.getIntrinsicHeight()));
ball.draw(canvas);
canvas.restore();
}
抛物线是我在init方法中使用的对象:
ParabolicMove parabolic = new ParabolicMove();
球是可以抽的:
ball = context.getResources().getDrawable(R.drawable.ball);
我怎样才能优化它?画好动画?
答案 0 :(得分:0)
您可以使用静态图像在不同的线程中绘制图像和球。这可能会解决您的问题。有关更多信息,您可以使用SurfaceView: http://developer.android.com/reference/android/view/SurfaceView.html