首先写个主布局
然后底部布局横向四个,每个上面一个img按钮,下面一个文字
设置一个头部吧
主文件设置
package com.second.rewrite;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.os.Bundle;import android.support.v4.view.PagerAdapter;import android.support.v4.view.ViewPager;import android.support.v4.view.ViewPager.OnPageChangeListener;import android.view.LayoutInflater;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup;import android.view.Window;import android.widget.ImageButton;import android.widget.LinearLayout;public class MainActivity extends Activity implements OnClickListener{ private ViewPager mViewPager;//声明 private PagerAdapter mAdapter;//实现滑动效果的 private ListmViews = new ArrayList ();//适配器 //初始化4个tab private LinearLayout mTab1; private LinearLayout mTab2; private LinearLayout mTab3; private LinearLayout mTab4; //初始化4个bt1 private ImageButton mTabIbt1; private ImageButton mTabIbt2; private ImageButton mTabIbt3; private ImageButton mTabIbt4; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE);//取消标题栏 setContentView(R.layout.main); initView(); initEvent(); } private void initView() { mViewPager = (ViewPager) findViewById(R.id.id_viewpager); //tabs mTab1 = (LinearLayout) findViewById(R.id.id_tab1); mTab2 = (LinearLayout) findViewById(R.id.id_tab2); mTab3 = (LinearLayout) findViewById(R.id.id_tab3); mTab4 = (LinearLayout) findViewById(R.id.id_tab4); //imagebuttons mTabIbt1 = (ImageButton) findViewById(R.id.id_tab_ibt1); mTabIbt2 = (ImageButton) findViewById(R.id.id_tab_ibt2); mTabIbt3 = (ImageButton) findViewById(R.id.id_tab_ibt3); mTabIbt4 = (ImageButton) findViewById(R.id.id_tab_ibt4); //初始化布局 LayoutInflater mInflater = LayoutInflater.from(this);//类似于findid,用来找布局文件 View tab1 = mInflater.inflate(R.layout.tab1, null); View tab2 = mInflater.inflate(R.layout.tab2, null); View tab3 = mInflater.inflate(R.layout.tab3, null); View tab4 = mInflater.inflate(R.layout.tab4, null); //装载布局 mViews.add(tab1); mViews.add(tab2); mViews.add(tab3); mViews.add(tab4); mAdapter = new PagerAdapter() { //滑动方法 //以下这两个方法自行创建,创建和销毁方法 @Override public void destroyItem(ViewGroup container, int position, Object object) { //摧毁 container.removeView(mViews.get(position)); } @Override public Object instantiateItem(ViewGroup container, int position) { //此处创建要返回,所以新建对象。 View view = mViews.get(position); container.addView(view); return view; } //以下两个为自带方法 @Override public boolean isViewFromObject(View arg0, Object arg1) { return arg0==arg1; } @Override public int getCount() { //个数 return mViews.size(); } }; mViewPager.setAdapter(mAdapter); } private void initEvent() { //监听按钮转换页面 mTabIbt1.setOnClickListener(this); mTabIbt2.setOnClickListener(this); mTabIbt3.setOnClickListener(this); mTabIbt4 .setOnClickListener(this); //监听滑动事件,随着滑动,按钮进行转变 mViewPager.setOnPageChangeListener(new OnPageChangeListener() { @Override public void onPageSelected(int arg0) { int currentItem = mViewPager.getCurrentItem();//拿到编号 resetImg(); switch (currentItem) { case 0: mTabIbt1.setImageResource(R.drawable.touch_app_select); break; case 1: mTabIbt2.setImageResource(R.drawable.toys_select); break; case 2: mTabIbt3.setImageResource(R.drawable.view_quilt_select); break; case 3: mTabIbt4.setImageResource(R.drawable.visibility_select); break; default: break; } } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override public void onPageScrollStateChanged(int arg0) { } }); } @Override public void onClick(View arg0) { //重写监听 resetImg();//先用正常图片 switch (arg0.getId()) { case R.id.id_tab_ibt1: mViewPager.setCurrentItem(0);//切换到第一个界面 mTabIbt1.setImageResource(R.drawable.touch_app_select);//选择之后替换图片 break; case R.id.id_tab_ibt2: mViewPager.setCurrentItem(1); mTabIbt2.setImageResource(R.drawable.toys_select); break; case R.id.id_tab_ibt3: mViewPager.setCurrentItem(2); mTabIbt3.setImageResource(R.drawable.view_quilt_select); break; case R.id.id_tab_ibt4: mViewPager.setCurrentItem(3); mTabIbt4.setImageResource(R.drawable.visibility_select); break; default: break; } } private void resetImg() { //其实是换了图片,这里先用正常图片 mTabIbt1.setImageResource(R.drawable.touch_app); mTabIbt2.setImageResource(R.drawable.toys); mTabIbt3.setImageResource(R.drawable.view_quilt); mTabIbt4.setImageResource(R.drawable.visibility); }}
然后就是一个普通的主界面