我的视图绘制绘图非常慢

时间:2014-08-24 12:19:57

标签: android view draw drawable

我正在尝试在相机上绘制球动画,这就是我必须使用类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);

我怎样才能优化它?画好动画?

1 个答案:

答案 0 :(得分:0)

您可以使用静态图像在不同的线程中绘制图像和球。这可能会解决您的问题。有关更多信息,您可以使用SurfaceView: http://developer.android.com/reference/android/view/SurfaceView.html