как перевернуть вид с помощью viewflipper в Android? - PullRequest
2 голосов
/ 23 ноября 2011

В приложении для Android я использую два вида флиппера, чтобы перевернуть вид. Я хочу обеспечить задержку между переворотами. Я вызываю обработчик при нажатии на флипплере. Вот мой код.

@Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.oldmactwo);

            flipper = (ViewFlipper) findViewById(R.id.jetViewflipper);
            flippercow=(ViewFlipper) findViewById(R.id.cowViewflipper);

            flippercow.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
        Toast.makeText(getApplicationContext(), "on click method call",Toast.LENGTH_SHORT).show();              

        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
                    flipper.setInAnimation(inFromLeftAnimation());
                    flipper.setOutAnimation(outToLeftAnimation());
                    flipper.showPrevious();

                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                    /*Thread splashThread=new Thread()
                    {
                        public void run() {
                            try {
                                sleep(5000);
                            } catch (InterruptedException e) {
                                // TODO: handle exception
                            }
                            finally{
                                //splashThread.stop();
                            }

                        };
                    };
                    splashThread.start();*/

    Toast.makeText(getApplicationContext(), "delay ends",Toast.LENGTH_SHORT).show();                
                    //getcowFlipper();              
                    flippercow.setInAnimation(inFromBottomAnimation());
                    flippercow.setOutAnimation(outToTopAnimation());
                    flippercow.showNext();
                    //flipper.showPrevious();
    Toast.makeText(getApplicationContext(), "method ends",Toast.LENGTH_SHORT).show();               

                }
            });
     }

В приведенном выше коде сначала выполняется задержка, а затем просмотр переворачивается позже.

1 Ответ

1 голос
/ 23 ноября 2011

Ваши методы inFromLeftAnimation () + inFromRightAnimation () + outFromLeftAnimation () + outFromRightAnimation () содержат следующую часть:

inFromLeft.setDuration(400);

Приведенная выше часть даст задержку 400 мс.Конечно, вы также получили inFRight, outFromLeft и т. Д.

Пример:

    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(400);
      inFromLeft.setInterpolator(new AccelerateInterpolator());
      return inFromLeft;
    }
...