首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓RotateAnimation错误

安卓RotateAnimation错误
EN

Stack Overflow用户
提问于 2012-06-21 15:12:18
回答 1查看 485关注 0票数 0

我有一个连接到ImageButtonRotateAnimation,它在单击时旋转它,并使用OnAnimationEnd启动一个新的活动。

问题是它不工作。在我关闭应用程序并返回后,我在new Activity(..)中,当我返回时,动画就会执行。我希望动画发生,然后开始新的活动。

由于某些原因,在使用相同的代码之前,它工作得非常好,但我不知道,一些微小的变化可能会影响它。

下面是代码

代码语言:javascript
复制
 public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState); 
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);         
     setContentView(R.layout.menu);
    ImageButton amazingPicsButton = (ImageButton) findViewById(R.id.amazingPics),              
   setViewOnClick(amazingPicsButton, new Intent("com.jasfiddle.AmazingInterface.AMAZINGPICS"));     
}
/**
 * Generic OnClick setter method for giving various View objects a click listener
 * @param b
 * @param intent
 */
private <B> void setViewOnClick(B b, final Intent intent){
    ((View) b).setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

            amazingPicsSound = createRandButSound();
            amazingPicsSound.start();
            rotateAndNewActivity(v, intent);

        }
    });         

}


/** function that produces rotation animation on the View v.
 * Could be applied to button, ImageView, ImageButton, etc.
 */
private void rotateAndNewActivity(View v, final Intent intent){
    // Create an animation instance
    Animation an = new RotateAnimation(30, 360, v.getWidth()/2, v.getHeight()/2);
    an.setDuration(50);               // duration in ms
    an.setRepeatCount(3);                // -1 = infinite repeate

    /*we override the Animation an object to include the start of an new Activity
    at the end of animation */
     an.setAnimationListener(new AnimationListener(){
        @Override
        public void onAnimationStart(Animation animation) {
            // TODO Auto-generated method stub
        }
        @Override
        public void onAnimationRepeat(Animation animation) {
            // TODO Auto-generated method stub  
        }

        //start the activity onAnimationEnd
        @Override
        public void onAnimationEnd(Animation animation) {
            // TODO Auto-generated method stub
            startActivity(intent);
        }       
     });
    // Set the animation's parameters


    v.setAnimation(an);

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-21 15:31:10

setAnimation仅设置要在View上播放的下一个动画。要立即启动动画,请使用startAnimation

在您的示例中,请使用v.startAnimation(an);

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

https://stackoverflow.com/questions/11133235

复制
相关文章

相似问题

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