图片链接:http: //imgur.com/a/3Q2jQ
我正在使用 Canvas 为我的 android 应用程序制作动画。我有 onDraw 方法,其中一切都在移动或旋转,并且每个动画都很完美。但是,当我尝试更改第二张图片上的动画时,它会卡在那里 1-2 秒,然后它会继续播放第三张图片。如您所见,该应用程序是关于天气的,每个条件都是动画。
有什么想法可以解决这个问题吗?
这是 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 语句并出现问题。