Android中快速更改的位图

时间:2012-06-10 16:48:42

标签: android android-canvas

图片链接:http://imgur.com/a/3Q2jQ

我正在使用Canvas为我的Android应用程序制作动画。我有onDraw方法,一切都在移动或旋转,每个动画都很完美。但是当我尝试改变第二张照片上的动画时,它会像那里一样停留1-2秒,然后它继续第三张照片。 正如您所看到的,应用程序是关于Weather的,每个条件都是动画。

我有什么想法可以解决这个问题吗?

这是onDraw方法的第一张图片:

else {
        if (unknown == null) {
            recycleBitmap();
            condition = 0;
            unknown = BitmapFactory.decodeResource(getResources(),
                    R.drawable.unknown);
            width = getLayoutParams().width;
            height = getLayoutParams().height;
            width = width - (width / 7);
            height = height - (height / 7);
            unknown = Bitmap.createScaledBitmap(unknown, (int) width,
                    (int) height, true);
            initWeatherIcon();
        }
        drawUnknown1((getLayoutParams().width - unknown.getWidth()) / 2,
                ((getLayoutParams().height - unknown.getHeight()) / 2),
                canvas);

这是第三张图片的代码:

else if (condition == 6) {
        matrix.reset();
        matrix.setTranslate(getLayoutParams().height / 2,
                icon.getHeight() / 3);
        matrix.postRotate(x, getLayoutParams().width / 2
                + getLayoutParams().width / 4,
                icon.getHeight() / 3 + icon.getHeight() / 2);
        x++;
        RectF rect4 = new RectF(100, 100, 100, 100);
        matrix.mapRect(rect4);
        canvas.drawBitmap(icon, matrix, new Paint());

        drawCloudSun(
                0,
                getLayoutParams().height
                        - (getLayoutParams().height / 2 + getLayoutParams().height / 4),
                canvas);
        invalidate();

有If-else来调用动画。当应用程序启动时,它被称为unknown.png,但是当条件更改为Cloudy时,它会进入适当的if-else语句,并且会出现问题。

0 个答案:

没有答案