假设我有一个ImageButton btn。我有两种不同的Bitmap,bmp1和bmp2。默认情况下,btn显示bmp1,如下所示:
btn.setImageBitmap(bmp1);当调用以下命令时,我可以以某种方式制作一个横穿bmp1和bmp2的动画吗?
btn.setImageBitmap(bmp2);因此,问题是,是否有可能--如果是的话--如何在ImageButtons上动画化位图的变化?
发布于 2013-10-09 13:38:39
在我看来,有两种主要的方法来实现这个功能。请注意,可能还有其他方法会使这种情况与您所描述的完全相同,但这将是我的方法。
第一种方法:利用onAnimationEnd()回调
在这里,您需要从本质上淡出第一个ImageButton,更改onAnimationEnd()回调中的资源,然后将其淡入。要做到这一点,您必须实现以下代码。
Animation资源,用于将View淡出:Animation的View资源:Animation:
//获取对活动上下文上下文的引用= getContext();//创建动画对象。动画outAnimation =AnimationUtils.loadAnimation(上下文,R.anim.fadeout);动画inAnimation =AnimationUtils.loadAnimation(上下文,R.anim.fadein);AnimationListener分配给这个Animation,并按如下方式构建它:
OutAnimation.setAnimationListener(为了清晰起见省略了新的AnimationListener(){ //其他回调方法)。公共无效动画( yourImageButton.setImageResource(R.drawable.your_second_image);onAnimationEnd){ //修改ImageButton的资源//创建新的动画以应用于ImageButton。yourImageButton.startAnimation(inAnimation);}Animation分配给ImageButton,并启动第一个Animation:
yourImageButton.startAnimation(outAnimation);第二种方法:覆盖第二个ImageButton
对于这种方法,您只需将两个ImageButton分配给屏幕上相同的坐标,并且宽度相同。然后,您将淡出第一个ImageButton,并在第一个Animation结束后淡出第二个Animation(与上面的示例非常类似)。
我希望这个答案符合你的期望。如果有任何代码错误,我很抱歉,因为我现在没有编辑器。如果您想要更多的澄清,请让我知道!
发布于 2013-10-09 12:24:54
无法对图像按钮源进行动画更改。解决方法是堆叠两个ImageButtons,并分别对其alfa通道进行动画处理,以获得预期的行为。
https://stackoverflow.com/questions/19271575
复制相似问题