在视图分页器中显示视图后做动画(android)
Posted
技术标签:
【中文标题】在视图分页器中显示视图后做动画(android)【英文标题】:Do animation after view get displayed in view pager (android) 【发布时间】:2013-01-26 09:15:23 【问题描述】:您好,我是 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 显示几秒钟,然后做动画……怎么做? 需要帮忙..... 谢谢.....
【问题讨论】:
【参考方案1】:使用Runnable
,您可以保持动画,直到您的视图无法正确加载它,您必须测量视图加载的秒数,因此您可以根据视图加载时间传递延迟,例如下面:
Runnable runnableimage = new Runnable()
public void run()
//HERE YOUR ANIMATION
image.startAnimation(animFast);
;
它在2000 MilliSec
之后开始你的动画
handler.postDelayed(runnableimage, 2000);
【讨论】:
hye robin 谢谢你的回复......它对我有用。实际上我尝试了翻转类型的东西,现在它工作了谢谢你的帮助......【参考方案2】:使用带有启动延迟的animate()
:
mView.animate().rotationBy(360).setDuration(3000).setStartDelay(2000).start();
【讨论】:
Hye Singularity (:P) 谢谢您的回复..您的解决方案也有效,但我想要翻转类型的动画,这就是我使用自定义动画的原因..但是您的解决方案也可以正常工作...谢谢你寻求帮助... @nilkash 为此使用rotationXBy()
或 rotationYBy
或 combo 来绕轴翻转。以上是关于在视图分页器中显示视图后做动画(android)的主要内容,如果未能解决你的问题,请参考以下文章
FragmentStatePagerAdapter 视图分页器片段在活动重新创建后不显示
FragmentStatePagerAdapter视图分页器片段在重新创建活动后未显示