Сделать анимацию после просмотра отображаются в пейджере (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();