android ui导航,Android 仿微信之界面导航篇(一)

port.v4.view.ViewPager;

importandroid.support.v4.view.ViewPager.OnPageChangeListener;

importandroid.view.LayoutInflater;

importandroid.view.View;

importandroid.view.animation.Animation;

importandroid.view.animation.TranslateAnimation;

importandroid.widget.ImageView;

publicclassViewpagerextendsActivity {

privateViewPager mViewPager;//声明ViewPager对象

privatePagerTitleStrip mPagerTitleStrip;//声明动画标题

privateImageView mPageImg;// 动画图片

privateintcurrIndex =0;//当前页面

privateImageView mPage0,mPage1,mPage2,mPage3,mPage4,mPage5,mPage6,mPage7,mPage8;//声明导航图片对象

@Override

publicvoidonCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.viewpager);

mViewPager = (ViewPager)findViewById(R.id.viewpager);

mViewPager.setOnPageChangeListener(newMyOnPageChangeListener());

mPagerTitleStrip = (PagerTitleStrip)findViewById(R.id.pagertitle);

mPage0 = (ImageView)findViewById(R.id.page0);

mPage1 = (ImageView)findViewById(R.id.page1);

mPage2 = (ImageView)findViewById(R.id.page2);

mPage3 = (ImageView)findViewById(R.id.page3);

mPage4 = (ImageView)findViewById(R.id.page4);

mPage5 = (ImageView)findViewById(R.id.page5);

mPage6 = (ImageView)findViewById(R.id.page6);

mPage7 = (ImageView)findViewById(R.id.page7);

mPage8 = (ImageView)findViewById(R.id.page8);

//将要分页显示的View装入数组中

LayoutInflater mLi = LayoutInflater.from(this);

View view1 = mLi.inflate(R.layout.view1, null);

View view2 = mLi.inflate(R.layout.view2, null);

View view3 = mLi.inflate(R.layout.view3, null);

View view4 = mLi.inflate(R.layout.view4, null);

View view5 = mLi.inflate(R.layout.view5, null);

View view6 = mLi.inflate(R.layout.view6, null);

View view7 = mLi.inflate(R.layout.view7, null);

View view8 = mLi.inflate(R.layout.view8, null);

View view9 = mLi.inflate(R.layout.view9, null);

//每个页面的view数据

finalArrayList views =newArrayList();

views.add(view1);

views.add(view2);

views.add(view3);

views.add(view4);

views.add(view5);

views.add(view6);

views.add(view7);

views.add(view8);

views.add(view9);

//每一个也没得标题

finalArrayList titles =newArrayList();

titles.add("①");

titles.add("②");

titles.add("③");

titles.add("④");

titles.add("⑤");

titles.add("⑥");

titles.add("⑦");

titles.add("⑧");

titles.add("⑨");

//填充ViewPager的数据适配器,我们重写即可

PagerAdapter mPagerAdapter = newPagerAdapter() {

@Override

publicbooleanisViewFromObject(View arg0, Object arg1) {

returnarg0 == arg1;

}

@Override

publicintgetCount() {

returnviews.size();

}

@Override

publicvoiddestroyItem(View container,intposition, Object object) {

((ViewPager)container).removeView(views.get(position));

}

@Override

publicCharSequence getPageTitle(intposition) {

returntitles.get(position);

}

@Override

publicObject instantiateItem(View container,intposition) {

((ViewPager)container).addView(views.get(position));

returnviews.get(position);

}

};

mViewPager.setAdapter(mPagerAdapter);//与ListView用法相同,设置重写的Adapter。这样就实现了ViewPager的滑动效果。

}

publicclassMyOnPageChangeListenerimplementsOnPageChangeListener {

publicvoidonPageSelected(intarg0) {//参数arg0为选中的View

Animation animation = null;//声明动画对象

switch(arg0) {

case0://页面一

mPage0.setImageDrawable(getResources().getDrawable(R.drawable.page_now));//进入第一个导航页面,小圆点为选中状态,下一个页面的小圆点是未选中状态。

mPage1.setImageDrawable(getResources().getDrawable(R.drawable.page));

if(currIndex == arg0+1) {

animation = newTranslateAnimation(arg0+1, arg0,0,0);//圆点移动效果动画,从当前View移动到下一个View

}

break;

case1://页面二

mPage1.setImageDrawable(getResources().getDrawable(R.drawable.page_now));//当前View

mPage0.setImageDrawable(getResources().getDrawable(R.drawable.page));//上一个View

mPage2.setImageDrawable(getResources().getDrawable(R.drawable.page));//下一个View

if(currIndex == arg0-1) {//如果滑动到上一个View

animation = newTranslateAnimation(arg0-1, arg0,0,0);//圆点移动效果动画,从当前View移动到下一个View

} elseif(currIndex == arg0+1) {//圆点移动效果动画,从当前View移动到下一个View,下同。

animation = newTranslateAnimation(arg0+1, arg0,0,0);

}

break;

case2://页面三

mPage2.setImageDrawable(getResources().getDrawable(R.drawable.page_now));

mPage1.setImageDrawable(getResources().getDrawable(R.drawable.page));

mPage3.setImageDrawable(getResources().getDrawable(R.drawable.page));

if(currIndex == arg0-1) {

animation = newTranslateAnimation(arg0-1, arg0,0,0);

} elseif(currIndex == arg0+1) {

animation = newTranslateAnimation(arg0+1, arg0,0,0);

}

break;

case3:

mPage3.setImageDrawable(getResources().getDrawable(R.drawable.page_now));

mPage4.setImageDrawable(getResources().getDrawable(R.drawable.page));

mPage2.setImageDrawable(getResources().getDrawable(R.drawable.page));

if(currIndex == arg0-1) {

animation = newTranslateAnimation(arg0-1, arg0,0,0);

} elseif(currIndex == arg0+1) {

animation = newTranslateAnimation(arg0+1, arg0,0,0);

}

break;

case4:

mPage4.setImageDrawable(getResources().getDrawable(R.drawable.page_now));

mPage3.setImageDrawable(getResources().getDrawable(R.drawable.page));

mPage5.setImageDrawable(getResources().getDrawable(R.drawable.page));

if(currIndex == arg0-1) {

animation = newTranslateAnimation(arg0-1, arg0,0,0);

} elseif(currIndex == arg0+1) {

animation = newTranslateAnimation(arg0+1, arg0,0,0);

}

break;

case5:

mPage5.setImageDrawable(getResources().getDrawable(R.drawable.page_now));

mPage4.setImageDrawable(getResources().getDrawable(R.drawable.page));

mPage6.setImageDrawable(getResources().getDrawable(R.drawable.page));

if(currIndex == arg0-1) {

animation = newTranslateAnimation(arg0-1, arg0,0,0);

} elseif(currIndex == arg0+1) {

animation = newTranslateAnimation(arg0+1, arg0,0,0);

}

break;

case6:

mPage6.setImageDrawable(getResources().getDrawable(R.drawable.page_now));

mPage5.setImageDrawable(getResources().getDrawable(R.drawable.page));

mPage7.setImageDrawable(getResources().getDrawable(R.drawable.page));

if(currIndex == arg0-1) {

animation = newTranslateAnimation(arg0-1, arg0,0,0);

} elseif(currIndex == arg0+1) {

animation = newTranslateAnimation(arg0+1, arg0,0,0);

}

break;

case7:

mPage7.setImageDrawable(getResources().getDrawable(R.drawable.page_now));

mPage8.setImageDrawable(getResources().getDrawable(R.drawable.page));

mPage6.setImageDrawable(getResources().getDrawable(R.drawable.page));

if(currIndex == arg0-1) {

animation = newTranslateAnimation(arg0-1, arg0,0,0);

} elseif(currIndex == arg0+1) {

animation = newTranslateAnimation(arg0+1, arg0,0,0);

}

break;

case8:

mPage8.setImageDrawable(getResources().getDrawable(R.drawable.page_now));

mPage7.setImageDrawable(getResources().getDrawable(R.drawable.page));

if(currIndex == arg0-1) {

animation = newTranslateAnimation(arg0-1, arg0,0,0);

}

break;

}

currIndex = arg0;//设置当前View

animation.setFillAfter(true);// True:设置图片停在动画结束位置

animation.setDuration(300);//设置动画持续时间

}

publicvoidstartbutton(View v) {

Intent intent = newIntent();

intent.setClass(Viewpager.this,Viewdoor.class);//进入到开门效果的Activity

startActivity(intent);

this.finish();//结束本Activity

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值