Сделать анимацию после просмотра отображаются в пейджере (Android)

Привет, я новичок в Android, и я делаю одно простое приложение. Мое приложение содержит одно простое действие, которое содержит просмотр страницы. мой пейджер просмотра не имеет экранов 3. ТАК мой пейджер просмотра работает нормально. мой первый и второй экран содержит одну кнопку, когда я нажимаю на эту кнопку, она переходит на третий экран setCurrentItem(2);,

Теперь я хочу, чтобы, когда я перешел на третий экран, он отображал один вид и несколько секунд, как после полного рендеринга этого вида, выполняйте анимацию, например, флип-анимацию.

что происходит в действительности, когда я нажимаю на кнопки, он сразу переходит на этот экран, но не отображает вид по умолчанию. он напрямую запускает анимацию...

Мой код выглядит

public class HelpActivity extends Activity {

    private final int NUM_SCREENS = 3;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.help);
        mInflater = LayoutInflater.from(this);

        vp = (ViewPager) findViewById(R.id.pager);
        PagerAdapter pagerAdapter = new MyPagerAdapter();
        vp.setAdapter(pagerAdapter);

        }

    private OnClickListener signin = new OnClickListener() {

        @Override
        public void onClick(View arg0) {

                vp.setCurrentItem(2);
                // ******* do some animation on view 3 in pager views ....          
        }

    };

    private class MyPagerAdapter extends PagerAdapter {

        @Override
        public int getCount() {
            return NUM_SCREENS;
        }

        @Override
        public Object instantiateItem(View collection, int position) {

            View view = null;
            Typeface tf = Typeface.createFromAsset(getAssets(),
                    "fonts/sf_cartoonist_hand_bold.ttf");
            if (position == 0) {
                // display view1
                // on button click call sign in

            } else if (position == 1) {
                //display view 2
                //on button click call sign in
            } else if (position == 2) {

                //display view 3

            }

            ((ViewPager) collection).addView(view, 0);

            return view;
        }
    }


}

Что мне нужно после нажатия на кнопку, она пропускает на view3 дисплей в течение нескольких секунд, а после этого делать анимацию... как это сделать? нужна помощь..... спасибо.....

2 ответа

Решение

С помощью Runnable Вы можете удерживать анимацию до тех пор, пока ваше представление не загрузится должным образом, вы должны измерить, сколько секунд загружается ваше представление, чтобы вы могли передать задержку в соответствии с временем загрузки своего представления, как показано ниже:

Runnable runnableimage = new Runnable() {
            public void run() {
            //HERE YOUR ANIMATION
                image.startAnimation(animFast);

            }
        };

Это начинает вашу анимацию после 2000 MilliSec

handler.postDelayed(runnableimage, 2000);

Использование animate() с задержкой запуска:

mView.animate().rotationBy(360).setDuration(3000).setStartDelay(2000).start();

Другие вопросы по тегам