Android仿微信5实现滑动导航条
本文实例为大家分享了Android仿微信5滑动导航效果,供大家参考,具体内容如下
ViewPageAdapter.java
packagecom.rong; importjava.util.ArrayList; importjava.util.List; importandroid.support.v4.view.PagerAdapter; importandroid.support.v4.view.ViewPager; importandroid.view.View; publicclassViewPagerAdapterextendsPagerAdapter{ privateList<View>views; publicViewPagerAdapter(List<View>views){ this.views=views; } @Override publicintgetCount(){ returnviews.size(); } @Override publicbooleanisViewFromObject(Viewarg0,Objectarg1){ returnarg0==arg1; } @Override publicvoiddestroyItem(Viewcontainer,intposition,Objectobject){ ((ViewPager)container).removeView(views.get(position)); } @Override publicObjectinstantiateItem(Viewcontainer,intposition){ ((ViewPager)container).addView(views.get(position)); returnviews.get(position); } /** *插入一个View到viewpager中 * *@paramview *@return */ publicbooleaninsert(Viewview){ if(this.views==null){ this.views=newArrayList<View>(); } returnthis.views.add(view); } }
HomeAcitivity.java
packagecom.rong; importjava.util.ArrayList; importjava.util.List; importandroid.app.Activity; importandroid.os.Bundle; importandroid.support.v4.view.ViewPager; importandroid.support.v4.view.ViewPager.OnPageChangeListener; importandroid.util.DisplayMetrics; importandroid.util.Log; importandroid.view.Display; importandroid.view.View; importandroid.view.ViewGroup.LayoutParams; importandroid.widget.LinearLayout; importcom.rong.wechat5.R; publicclassHomeActivityextendsActivity{ privateViewhome_line; privateintscreenWidth1_3; privateViewPagerhome_vp; privateViewPagerAdapterviewPagerAdapter; privateList<View>views=newArrayList<View>(); @Override protectedvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.layout_home); initView(); } privatevoidinitView(){ Displaydisplay=getWindow().getWindowManager().getDefaultDisplay(); DisplayMetricsdm=newDisplayMetrics(); display.getMetrics(dm); home_line=(View)findViewById(R.id.home_line); home_vp=(ViewPager)findViewById(R.id.home_vp); LayoutParamslp=home_line.getLayoutParams(); screenWidth1_3=dm.widthPixels/3; lp.width=screenWidth1_3; lp.height=5; home_line.setLayoutParams(lp); Viewlayout1=View.inflate(this,R.layout.layout_view1,null); Viewlayout2=View.inflate(this,R.layout.layout_view2,null); Viewlayout3=View.inflate(this,R.layout.layout_view3,null); views.add(layout1); views.add(layout2); views.add(layout3); viewPagerAdapter=newViewPagerAdapter(views); home_vp.setAdapter(viewPagerAdapter); home_vp.setOnPageChangeListener(newOnPageChangeListener(){ @Override publicvoidonPageSelected(intarg0){ } @Override publicvoidonPageScrolled(intposition,floatpositionOffset,intpositionOffsetPixels){ Log.i("TAG",position+"=="+positionOffset+"=="+positionOffsetPixels); LinearLayout.LayoutParamslp=(android.widget.LinearLayout.LayoutParams)home_line.getLayoutParams(); lp.leftMargin=(int)(screenWidth1_3*position+screenWidth1_3*positionOffset); home_line.setLayoutParams(lp); } @Override publicvoidonPageScrollStateChanged(intarg0){ } }); } }
layout_home.xml
<?xmlversion="1.0"encoding="utf-8"?> <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#ffffff" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="60dp" android:orientation="horizontal"> <RelativeLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:text="消息" android:textColor="#000000" android:textSize="24sp"/> </RelativeLayout> <RelativeLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:text="朋友圈" android:textColor="#000000" android:textSize="24sp"/> </RelativeLayout> <RelativeLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:text="我" android:textColor="#000000" android:textSize="24sp"/> </RelativeLayout> </LinearLayout> <View android:id="@+id/home_line" android:layout_width="0dp" android:layout_height="0dp" android:background="#ff0000"/> <android.support.v4.view.ViewPager android:id="@+id/home_vp" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1"/> </LinearLayout>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。