首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于改变ImageBitmap of ImageButton的动画

关于改变ImageBitmap of ImageButton的动画
EN

Stack Overflow用户
提问于 2013-10-09 12:07:52
回答 2查看 3K关注 0票数 4

假设我有一个ImageButton btn。我有两种不同的Bitmapbmp1bmp2。默认情况下,btn显示bmp1,如下所示:

代码语言:javascript
复制
btn.setImageBitmap(bmp1);

当调用以下命令时,我可以以某种方式制作一个横穿bmp1bmp2的动画吗?

代码语言:javascript
复制
btn.setImageBitmap(bmp2);

因此,问题是,是否有可能--如果是的话--如何在ImageButtons上动画化位图的变化?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-09 13:38:39

在我看来,有两种主要的方法来实现这个功能。请注意,可能还有其他方法会使这种情况与您所描述的完全相同,但这将是我的方法。

第一种方法:利用onAnimationEnd()回调

在这里,您需要从本质上淡出第一个ImageButton,更改onAnimationEnd()回调中的资源,然后将其淡入。要做到这一点,您必须实现以下代码。

  1. 在XML中创建一个Animation资源,用于将View淡出:

  1. 在XML中创建用于淡出AnimationView资源:

  1. 在代码中加载淡出和淡出Animation: //获取对活动上下文上下文的引用= getContext();//创建动画对象。动画outAnimation =AnimationUtils.loadAnimation(上下文,R.anim.fadeout);动画inAnimation =AnimationUtils.loadAnimation(上下文,R.anim.fadein);

  1. 将一个新的AnimationListener分配给这个Animation,并按如下方式构建它: OutAnimation.setAnimationListener(为了清晰起见省略了新的AnimationListener(){ //其他回调方法)。公共无效动画( yourImageButton.setImageResource(R.drawable.your_second_image);onAnimationEnd){ //修改ImageButton的资源//创建新的动画以应用于ImageButton。yourImageButton.startAnimation(inAnimation);}

  1. Animation分配给ImageButton,并启动第一个Animation: yourImageButton.startAnimation(outAnimation);

  1. 然后,如果您想要动画回到以前的图像,您只需做同样的,但以相反的顺序。

第二种方法:覆盖第二个ImageButton

对于这种方法,您只需将两个ImageButton分配给屏幕上相同的坐标,并且宽度相同。然后,您将淡出第一个ImageButton,并在第一个Animation结束后淡出第二个Animation(与上面的示例非常类似)。

我希望这个答案符合你的期望。如果有任何代码错误,我很抱歉,因为我现在没有编辑器。如果您想要更多的澄清,请让我知道!

票数 8
EN

Stack Overflow用户

发布于 2013-10-09 12:24:54

无法对图像按钮源进行动画更改。解决方法是堆叠两个ImageButtons,并分别对其alfa通道进行动画处理,以获得预期的行为。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19271575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档