int imgSize = 30;
final ShapeDrawable redDot = new ShapeDrawable(new OvalShape());
redDot.getPaint().setColor(Color.RED);
redDot.setIntrinsicHeight(imgSize);
redDot.setIntrinsicWidth(imgSize);
final Bitmap bitmap = Bitmap.createBitmap(imgSize, imgSize, Bitmap.Config.ARGB_8888);
final Canvas canvas = new Canvas(bitmap);
redDot.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
redDot.draw(canvas);
ImageView imgAnimArea = new ImageView(getActivity());
imgAnimArea.setImageBitmap(bitmap);
imgAnimArea.setScaleType(ImageView.ScaleType.CENTER);
animationsView.addView(imgAnimArea);
final AnimationSet animSetRedDot = new AnimationSet(true);
// animSetRedDot.setFillAfter(true);
// animSetRedDot.setFillEnabled(true);
Animation aniRepeatFadeIn = null;
Animation aniRepatFadeOut = null;
// fade out
aniRepatFadeOut = new AlphaAnimation(1, 0);
aniRepatFadeOut.setStartOffset(3000);
aniRepatFadeOut.setDuration(300);
animSetRedDot.addAnimation(aniRepatFadeOut);
// fade out animation works only if remove this part
aniRepeatFadeIn = new AlphaAnimation(0, 1);
aniRepeatFadeIn.setStartOffset(6000);
aniRepeatFadeIn.setDuration(300);
animSetRedDot.addAnimation(aniRepeatFadeIn);
imgAnimArea.startAnimation(animSetRedDot);
其简单的代码(至少动画部件),但具有非常奇怪的行为。 基本上动画之前它创建的形状(小红圈)将其转换为位图,并将其添加到animationsView
(的FrameLayout)作为ImageView
的源( imgAnimArea
)。
所以,我的红点淡出,但从来没有出现回来了,它只是部分的淡入淡出的火灾比淡出甚至删除你淡出后的工作情况。 我试图还设置淡出.5f,而不是0。在这种情况下,它淡出知名度的一半。
我也曾经试图动画animationsView
,但结果是一样的-只是淡出部分作品,如果添加部分不褪色,如果添加淡入部分,那么整个动画没有在所有的工作。
我可以看到,没有动画,在所有加入的形状。 此外,我可以在任何情况下,动画完成后看到它。 启用或禁用FillAfter具有完全没有效果。
所以,问题是什么错在这里? 为什么淡入动画不能正常工作? 为什么如果添加淡入动画整个动画不能正常工作?