Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。
这篇文章主要为大家详细介绍了Android仿微信5实现滑动导航条,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
ViewPageAdapter.java
- package com.rong;
- import java.util.ArrayList;
- import java.util.List;
- import android.support.v4.view.PagerAdapter;
- import android.support.v4.view.ViewPager;
- import android.view.View;
- public class ViewPagerAdapter extends PagerAdapter {
- private List<View> views;
- public ViewPagerAdapter(List<View> views) {
- this.views = views;
- }
- @Override
- public int getCount() {
- return views.size();
- }
- @Override
- public boolean isViewFromObject(View arg0, Object arg1) {
- return arg0 == arg1;
- }
- @Override
- public void destroyItem(View container, int position, Object object) {
- ((ViewPager) container).removeView(views.get(position));
- }
- @Override
- public Object instantiateItem(View container, int position) {
- ((ViewPager) container).addView(views.get(position));
- return views.get(position);
- }
- /**
- * 插入一个View到viewpager中
- *
- * @param view
- * @return
- */
- public boolean insert(View view) {
- if (this.views == null) {
- this.views = new ArrayList<View>();
- }
- return this.views.add(view);
- }
- }
HomeAcitivity.java
- package com.rong;
- import java.util.ArrayList;
- import java.util.List;
- import android.app.Activity;
- import android.os.Bundle;
- import android.support.v4.view.ViewPager;
- import android.support.v4.view.ViewPager.OnPageChangeListener;
- import android.util.DisplayMetrics;
- import android.util.Log;
- import android.view.Display;
- import android.view.View;
- import android.view.ViewGroup.LayoutParams;
- import android.widget.LinearLayout;
- import com.rong.wechat5.R;
- public class HomeActivity extends Activity {
- private View home_line;
- private int screenWidth1_3;
- private ViewPager home_vp;
- private ViewPagerAdapter viewPagerAdapter;
- private List < View > views = new ArrayList < View > ();
- @Override protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.layout_home);
- initView();
- }
- private void initView() {
- Display display = getWindow().getWindowManager().getDefaultDisplay();
- DisplayMetrics dm = new DisplayMetrics();
- display.getMetrics(dm);
- home_line = (View) findViewById(R.id.home_line);
- home_vp = (ViewPager) findViewById(R.id.home_vp);
- LayoutParams lp = home_line.getLayoutParams();
- screenWidth1_3 = dm.widthPixels / 3;
- lp.width = screenWidth1_3;
- lp.height = 5;
- home_line.setLayoutParams(lp);
- View layout1 = View.inflate(this, R.layout.layout_view1, null);
- View layout2 = View.inflate(this, R.layout.layout_view2, null);
- View layout3 = View.inflate(this, R.layout.layout_view3, null);
- views.add(layout1);
- views.add(layout2);
- views.add(layout3);
- viewPagerAdapter = new ViewPagerAdapter(views);
- home_vp.setAdapter(viewPagerAdapter);
- home_vp.setOnPageChangeListener(new OnPageChangeListener() {
- @Override public void onPageSelected(int arg0) {
- }
- @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
- Log.i("TAG", position + "==" + positionOffset + "==" + positionOffsetPixels);
- LinearLayout.LayoutParams lp = (android.widget.LinearLayout.LayoutParams) home_line.getLayoutParams();
- lp.leftMargin = (int)(screenWidth1_3 * position + screenWidth1_3 * positionOffset);
- home_line.setLayoutParams(lp);
- }
- @Override public void onPageScrollStateChanged(int arg0) {
- }
- });
- }
- }
layout_home.xml
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns: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>
来源: http://www.phperz.com/article/17/0917/348418.html