第二个视图的viewflipper问题

时间:2011-05-25 06:04:32

标签: android viewflipper

我是android的新手,我无法用view-flipper解决问题。当我在第二个视图中单击一个按钮时,第三个视图应该出现infromright()动画。但与此同时,第一个视图也出现在第三个视图中,并在内部翻译并消失。这不应该发生

如何阻止这一点,任何想法

这是代码

public class gif extends Activity {
    ViewFlipper flipper;
  //    RelativeLayout r1 = (RelativeLayout)findViewById(R.id.second_view);



    private Animation inFromTopAnimation() {

    Animation inFromTop = new TranslateAnimation(
    Animation.RELATIVE_TO_PARENT,  0.0f, Animation.RELATIVE_TO_PARENT,  0.0f,
    Animation.RELATIVE_TO_PARENT,  -1.0f, Animation.RELATIVE_TO_PARENT,   0.0f
    );
    inFromTop.setDuration(1000);
    inFromTop.setInterpolator(new AccelerateInterpolator());
    return inFromTop;
    }
    private Animation outToBottomAnimation() {
    Animation outtoBottom = new TranslateAnimation(
      Animation.RELATIVE_TO_PARENT,  0.0f, Animation.RELATIVE_TO_PARENT,  0.0f,
      Animation.RELATIVE_TO_PARENT,  0.0f, Animation.RELATIVE_TO_PARENT,  +1.0f
    );
    outtoBottom.setDuration(1000);
    outtoBottom.setInterpolator(new AccelerateInterpolator());
    return outtoBottom;
    }

    private Animation outToTopAnimation() {
    Animation inFromTop = new TranslateAnimation(
    Animation.RELATIVE_TO_PARENT,  0.0f, Animation.RELATIVE_TO_PARENT,  0.0f,
    Animation.RELATIVE_TO_PARENT,  +1.0f, Animation.RELATIVE_TO_PARENT,   0.0f
    );
    inFromTop.setDuration(1000);
    inFromTop.setInterpolator(new AccelerateInterpolator());
    return inFromTop;
    }
    private Animation outFromBottomAnimation() {
    Animation outFromBottom = new TranslateAnimation(
      Animation.RELATIVE_TO_PARENT,  0.0f, Animation.RELATIVE_TO_PARENT,  0.0f,
      Animation.RELATIVE_TO_PARENT,  0.0f, Animation.RELATIVE_TO_PARENT,  -1.0f
    );
    outFromBottom.setDuration(1000);
    outFromBottom.setInterpolator(new AccelerateInterpolator());
    return outFromBottom;
    }



    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.main);

     flipper = (ViewFlipper) findViewById(R.id.flipper);
     ImageView imgview1 = (ImageView) findViewById(R.id.imageview1);

     Button button2 = (Button) findViewById(R.id.flipback);

     imgview1.setOnClickListener(new View.OnClickListener() {
         public void onClick(View view) {
             flipper.setInAnimation(inFromTopAnimation());
             flipper.setOutAnimation(outToBottomAnimation());
             flipper.showNext();      
         }
     });

     button2.setOnClickListener(new View.OnClickListener() {
         public void onClick(View view) {
             flipper.setInAnimation(outToTopAnimation());
             flipper.setOutAnimation(outFromBottomAnimation());
             flipper.showPrevious();

         }

     });


    }

     @Override
     public  void  onWindowFocusChanged(boolean hasFocus) {
        super.onWindowFocusChanged(hasFocus);
     ImageView imgview1 = (ImageView)findViewById(R.id.imageview1);                                        
     imgview1.setVisibility(ImageView.VISIBLE);
     imgview1.setBackgroundResource(R.anim.topimageview);

     AnimationDrawable frameAnimation =
     (AnimationDrawable) imgview1.getBackground();

     if (frameAnimation.isRunning()) {
        frameAnimation.stop();
     }

     else {
        frameAnimation.stop();
        frameAnimation.start();
     }

     ImageView imgview2 = (ImageView)findViewById(R.id.imageview2);                                        
     imgview2.setVisibility(ImageView.VISIBLE);
     imgview2.setBackgroundResource(R.anim.rectbackground);

     AnimationDrawable frameAnimation1 =
     (AnimationDrawable) imgview2.getBackground();

     if (frameAnimation1.isRunning()) {
        frameAnimation1.stop();
     }

     else {
        frameAnimation1.stop();
        frameAnimation1.start();
     } 
     ImageView imgview3 = (ImageView)findViewById(R.id.imageview3);                                        
     imgview3.setVisibility(ImageView.VISIBLE);
     imgview3.setBackgroundResource(R.anim.background1);

     AnimationDrawable frameAnimation2 =
     (AnimationDrawable) imgview3.getBackground();

     if (frameAnimation2.isRunning()) {
        frameAnimation2.stop();
     }

     else {
        frameAnimation2.stop();
        frameAnimation2.start();
     }
     ImageView imgView = (ImageView)findViewById(R.id.imageview01);                                        
     imgView.setVisibility(ImageView.VISIBLE);
     imgView.setBackgroundResource(R.anim.background);

     AnimationDrawable frameAnimation3 =
     (AnimationDrawable) imgView.getBackground();

     if (frameAnimation3.isRunning()) {
        frameAnimation3.stop();
     }

     else {
        frameAnimation3.stop();
        frameAnimation3.start();
     }
     ImageView imgview02 = (ImageView)findViewById(R.id.imageview02);                                        
     imgview02.setVisibility(ImageView.VISIBLE);
     imgview02.setBackgroundResource(R.anim.background3);

     AnimationDrawable frameAnimation5 =
     (AnimationDrawable) imgview02.getBackground();

     if (frameAnimation5.isRunning()) {
        frameAnimation5.stop();
     }

     else {
        frameAnimation5.stop();
        frameAnimation5.start();
     }

     ImageView imgview03 = (ImageView)findViewById(R.id.imageview03);                                        
     imgview03.setVisibility(ImageView.VISIBLE);
     imgview03.setBackgroundResource(R.anim.background2);

     AnimationDrawable frameAnimation4 =
     (AnimationDrawable) imgview03.getBackground();

     if (frameAnimation4.isRunning()) {
        frameAnimation4.stop();
     }

     else {
        frameAnimation4.stop();
        frameAnimation4.start();
     }

     ImageView imgview04 = (ImageView)findViewById(R.id.imageview4);                                        
     imgview04.setVisibility(ImageView.VISIBLE);
     imgview04.setBackgroundResource(R.anim.background4);

     AnimationDrawable frameAnimation6 =
     (AnimationDrawable) imgview04.getBackground();

     if (frameAnimation6.isRunning()) {
        frameAnimation6.stop();
     }

     else {
        frameAnimation6.stop();
        frameAnimation6.start();
     }
    ;
    final ImageView hearttap =(ImageView)findViewById(R.id.hearttap);
  // final View second = null ;

    Button ekgbutton = (Button)findViewById(R.id.ekgbutton);

    final ImageView i2 = (ImageView) findViewById(R.id.imageview02);
     final ImageView i3 = (ImageView) findViewById(R.id.imageview03);
     final ImageView i4 = (ImageView) findViewById(R.id.imageview04);
     final ImageView i5 = (ImageView) findViewById(R.id.imageview05);
     final ImageView i6 = (ImageView) findViewById(R.id.imageview06);
     final ImageView i7 = (ImageView) findViewById(R.id.imageview07);


    hearttap.setOnTouchListener(new View.OnTouchListener() {

        private Animation inFromRightAnimation() {

            Animation inFromRight = new TranslateAnimation(
            Animation.RELATIVE_TO_PARENT,  +1.0f, Animation.RELATIVE_TO_PARENT,  0.0f,
            Animation.RELATIVE_TO_PARENT,  0.0f, Animation.RELATIVE_TO_PARENT,   0.0f

            );
            inFromRight.setDuration(500);
            inFromRight.setInterpolator(new AccelerateInterpolator());
            return inFromRight;
            }
            private Animation outToLeftAnimation() {
            Animation outtoLeft = new TranslateAnimation(
             Animation.RELATIVE_TO_PARENT,  0.0f, Animation.RELATIVE_TO_PARENT,  -1.0f,
             Animation.RELATIVE_TO_PARENT,  0.0f, Animation.RELATIVE_TO_PARENT,   0.0f
            );
            outtoLeft.setDuration(500);
            outtoLeft.setInterpolator(new AccelerateInterpolator());
            return outtoLeft;
            }


        @Override
        public boolean onTouch(View v, MotionEvent event) {
            // TODO Auto-generated method stub
        //  r1.setVisibility(View.GONE);

            i2.setVisibility(View.GONE);
            i3.setVisibility(View.GONE);
            i4.setVisibility(View.GONE);
            i5.setVisibility(View.GONE);
            i6.setVisibility(View.GONE);
            i7.setVisibility(View.GONE); 



             flipper.setInAnimation(inFromRightAnimation());
             flipper.setOutAnimation(outToLeftAnimation());
             flipper.showNext();

           //  flipper.getChildAt(2)
             flipper.setDisplayedChild(2);


           // WebView  webview1= (WebView)findViewById(R.id.ekgwebview1);
        //   webview1.loadUrl("C://Users/Android/Desktop/bg only.gif");
         // flipper.clearDisappearingChildren();

        // flipper.dispatchWindowVisibilityChanged(2);
             flipper.setEnabled(true);

             if (hearttap.onTouchEvent(event))


                 return true;
             else
                 return false;         

        }
    });

 ekgbutton.setOnTouchListener(new View.OnTouchListener() {
     private Animation inFromLeftAnimation() {
            Animation inFromLeft = new TranslateAnimation(
            Animation.RELATIVE_TO_PARENT,  -1.0f, Animation.RELATIVE_TO_PARENT,  0.0f,
            Animation.RELATIVE_TO_PARENT,  0.0f, Animation.RELATIVE_TO_PARENT,   0.0f
            );
            inFromLeft.setDuration(500);
            inFromLeft.setInterpolator(new AccelerateInterpolator());
            return inFromLeft;
            }
            private Animation outToRightAnimation() {
            Animation outtoRight = new TranslateAnimation(
             Animation.RELATIVE_TO_PARENT,  0.0f, Animation.RELATIVE_TO_PARENT,  +1.0f,
             Animation.RELATIVE_TO_PARENT,  0.0f, Animation.RELATIVE_TO_PARENT,   0.0f
            );
            outtoRight.setDuration(500);
            outtoRight.setInterpolator(new AccelerateInterpolator());
            return outtoRight;
            }

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            // TODO Auto-generated method stub
            i2.setVisibility(View.GONE);
            i3.setVisibility(View.GONE);
            i4.setVisibility(View.GONE);
            i5.setVisibility(View.GONE);
            i6.setVisibility(View.GONE);
            i7.setVisibility(View.GONE);    

            flipper.setInAnimation(inFromLeftAnimation());
             flipper.setOutAnimation(outToRightAnimation());
             flipper.showPrevious(); 
             flipper.setEnabled(true);

             //  flipper.getChildAt(0);
            flipper.setDisplayedChild(0);

            return true;

        }

    });

    }
    }

0 个答案:

没有答案