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>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。