1. 程式人生 > >android ViewPager頁面左右滑動切換

android ViewPager頁面左右滑動切換

複製程式碼
  1 package com.example.viewpagertest;
  2 
  3 import java.util.ArrayList;
  4 import java.util.List;
  5 
  6 import android.R.integer;
  7 import android.app.Activity;
  8 import android.os.Bundle;
  9 import android.support.v4.view.ViewPager;
 10 import android.support.v4.view.ViewPager.OnPageChangeListener;
 11
import android.view.LayoutInflater; 12 import android.view.View; 13 import android.view.View.OnClickListener; 14 import android.view.Window; 15 import android.widget.ImageButton; 16 import android.widget.LinearLayout; 17 18 public class MainActivity extends Activity implements OnClickListener { 19
20 private List<View> mPage; 21 private MyPagerAdapter adapter; 22 private ViewPager viewPager; 23 24 private ImageButton weixinImg; 25 private ImageButton friendImg; 26 private ImageButton addressImg; 27 private ImageButton settingImg; 28 private LinearLayout weixin; 29
private LinearLayout friend; 30 private LinearLayout address; 31 private LinearLayout setting; 32 33 private static final int WEIXIN_STATE = 0; 34 private static final int FRIEND_STATE = 1; 35 private static final int ADDRESS_STATE = 2; 36 private static final int SETTING_STATE = 3; 37 38 @Override 39 protected void onCreate(Bundle savedInstanceState) { 40 super.onCreate(savedInstanceState); 41 requestWindowFeature(Window.FEATURE_NO_TITLE); 42 setContentView(R.layout.activity_main); 43 intiView(); 44 getClickEvent(); 45 } 46 47 48 49 private void intiView() { 50 51 // 呈現頁面滑動效果 52 viewPager = (ViewPager) findViewById(R.id.viewpage); 53 mPage = new ArrayList<View>(); 54 mPage.add(LayoutInflater.from(this).inflate(R.layout.pageone, null)); 55 mPage.add(LayoutInflater.from(this).inflate(R.layout.pagetwo, null)); 56 mPage.add(LayoutInflater.from(this).inflate(R.layout.pagethree, null)); 57 mPage.add(LayoutInflater.from(this).inflate(R.layout.pagefour, null)); 58 adapter = new MyPagerAdapter(mPage); 59 viewPager.setAdapter(adapter); 60 61 //載入控制元件 62 weixinImg = (ImageButton) findViewById(R.id.id_weixin_img); 63 friendImg = (ImageButton) findViewById(R.id.id_frd_img); 64 addressImg = (ImageButton) findViewById(R.id.id_address_img); 65 settingImg = (ImageButton) findViewById(R.id.id_settint_img); 66 67 weixin = (LinearLayout) findViewById(R.id.id_weixin); 68 friend = (LinearLayout) findViewById(R.id.id_frd); 69 address = (LinearLayout) findViewById(R.id.id_address); 70 setting = (LinearLayout) findViewById(R.id.id_setting); 71 72 } 73 /** 74 * 按鈕的點選事件:當點選按鈕時,先讓所有的按鈕變成暗色, 75 * 然後將所點選的按鈕設定成亮色,並轉到按鈕所屬頁面 76 */ 77 @Override 78 public void onClick(View v) { 79 setImg(); 80 switch (v.getId()) { 81 case R.id.id_weixin: 82 viewPager.setCurrentItem(WEIXIN_STATE); 83 weixinImg.setImageResource(R.drawable.tab_weixin_pressed); 84 break; 85 86 case R.id.id_frd: 87 viewPager.setCurrentItem(FRIEND_STATE); 88 friendImg.setImageResource(R.drawable.tab_find_frd_pressed); 89 break; 90 91 case R.id.id_address: 92 viewPager.setCurrentItem(ADDRESS_STATE); 93 addressImg.setImageResource(R.drawable.tab_address_pressed); 94 break; 95 96 case R.id.id_setting: 97 viewPager.setCurrentItem(SETTING_STATE); 98 settingImg.setImageResource(R.drawable.tab_settings_pressed); 99 break; 100 101 } 102 103 } 104 private void getClickEvent() { 105 weixin.setOnClickListener(this); 106 friend.setOnClickListener(this); 107 address.setOnClickListener(this); 108 setting.setOnClickListener(this); 109 /** 110 * 頁面滑動的監聽事件:滑動頁面時,先將所有按鈕變成暗色 111 * 再把頁面所屬的按鈕變成亮色,表示所屬頁面 112 */ 113 viewPager.setOnPageChangeListener(new OnPageChangeListener() { 114 115 @Override 116 public void onPageSelected(int arg0) { 117 setImg(); 118 switch (arg0) { 119 case WEIXIN_STATE: 120 weixinImg.setImageResource(R.drawable.tab_weixin_pressed); 121 break; 122 case FRIEND_STATE: 123 friendImg.setImageResource(R.drawable.tab_find_frd_pressed); 124 break; 125 case ADDRESS_STATE: 126 addressImg.setImageResource(R.drawable.tab_address_pressed); 127 break; 128 case SETTING_STATE: 129 settingImg 130 .setImageResource(R.drawable.tab_settings_pressed); 131 break; 132 133 } 134 } 135 136 @Override 137 public void onPageScrolled(int arg0, float arg1, int arg2) { 138 139 } 140 141 @Override 142 public void onPageScrollStateChanged(int arg0) { 143 144 } 145 }); 146 147 } 148 //在點選按鈕或者活動頁面的時候,讓所有按鈕變成暗色 149 private void setImg() { 150 weixinImg.setImageResource(R.drawable.tab_weixin_normal); 151 friendImg.setImageResource(R.drawable.tab_find_frd_normal); 152 addressImg.setImageResource(R.drawable.tab_address_normal); 153 settingImg.setImageResource(R.drawable.tab_settings_normal); 154 155 } 156 157 }
複製程式碼