Android ViewPager欢迎页+引导页+进入首页
1 import android.app.Activity; 2 import android.content.Intent; 3 import android.content.SharedPreferences; 4 import android.content.SharedPreferences.Editor; 5 import android.os.Bundle; 6 import android.os.Handler; 7 8 /** 欢迎界面 */ 9 public class WelcomeAct extends Activity { 10 11 private boolean isFirstIn = false; 12 private static final int TIME = 2000; 13 private static final int GO_HOME = 1000; 14 private static final int GO_GUIDE = 1001; 15 16 private Handler mHandler = new Handler() { 17 public void handleMessage(android.os.Message msg) { 18 switch (msg.what) { 19 // 跳入主界面 20 case GO_HOME: 21 goHome(); 22 break; 23 // 跳入引导页 24 case GO_GUIDE: 25 goGuide(); 26 break; 27 } 28 }; 29 }; 30 31 @Override 32 protected void onCreate(Bundle savedInstanceState) { 33 super.onCreate(savedInstanceState); 34 setContentView(R.layout.welcome); 35 init(); 36 } 37 38 private void init() { 39 SharedPreferences perPreferences = getSharedPreferences("jike", 40 MODE_PRIVATE); 41 isFirstIn = perPreferences.getBoolean("isFirstIn", true); 42 if (!isFirstIn) { 43 mHandler.sendEmptyMessageDelayed(GO_HOME, TIME); 44 } else { 45 mHandler.sendEmptyMessageDelayed(GO_GUIDE, TIME); 46 Editor editor = perPreferences.edit(); 47 editor.putBoolean("isFirstIn", false); 48 editor.commit(); 49 } 50 } 51 52 private void goHome() { 53 Intent i = new Intent(WelcomeAct.this, MainActivity.class); 54 startActivity(i); 55 finish(); 56 } 57 58 private void goGuide() { 59 Intent i = new Intent(WelcomeAct.this, Guide.class); 60 startActivity(i); 61 finish(); 62 } 63 64 }
1 import java.util.ArrayList; 2 import java.util.List; 3 import android.app.Activity; 4 import android.content.Intent; 5 import android.os.Bundle; 6 import android.support.v4.view.ViewPager; 7 import android.support.v4.view.ViewPager.OnPageChangeListener; 8 import android.view.LayoutInflater; 9 import android.view.View; 10 import android.view.View.OnClickListener; 11 import android.widget.Button; 12 import android.widget.ImageView; 13 14 /** 引导页 */ 15 public class Guide extends Activity implements OnPageChangeListener { 16 17 private ViewPager vp; 18 private ViewPagerAdapter vpAdapter; 19 private List<View> views; 20 private ImageView[] dots; 21 private int[] ids = { R.id.iv1, R.id.iv2, R.id.iv3 }; 22 private Button start_btn; 23 24 @Override 25 protected void onCreate(Bundle savedInstanceState) { 26 super.onCreate(savedInstanceState); 27 setContentView(R.layout.guide); 28 initViews(); 29 initDots(); 30 } 31 32 private void initViews() { 33 LayoutInflater inflater = LayoutInflater.from(this); 34 35 views = new ArrayList<View>(); 36 views.add(inflater.inflate(R.layout.one, null)); 37 views.add(inflater.inflate(R.layout.two, null)); 38 views.add(inflater.inflate(R.layout.three, null)); 39 40 vpAdapter = new ViewPagerAdapter(views, this); 41 vp = (ViewPager) findViewById(R.id.viewpager); 42 vp.setAdapter(vpAdapter); 43 // 下标从0开始,所以第三个页面是get(2)。 44 start_btn = (Button) views.get(2).findViewById(R.id.start_btn); 45 start_btn.setOnClickListener(new OnClickListener() { 46 @Override 47 public void onClick(View arg0) { 48 Intent i = new Intent(Guide.this, MainActivity.class); 49 startActivity(i); 50 finish(); 51 } 52 }); 53 vp.setOnPageChangeListener(this); 54 } 55 56 /** 循环设置点 */ 57 private void initDots() { 58 dots = new ImageView[views.size()]; 59 for (int i = 0; i < views.size(); i++) { 60 dots[i] = (ImageView) findViewById(ids[i]); 61 } 62 } 63 64 @Override /** 滑动状态改变的时候 */ 65 public void onPageScrollStateChanged(int arg0) { 66 // TODO Auto-generated method stub 67 } 68 69 @Override /** 当页面被滑动时候调用 */ 70 public void onPageScrolled(int arg0, float arg1, int arg2) { 71 // TODO Auto-generated method stub 72 } 73 74 @Override /** 当前新的页面被选中时调用 */ 75 public void onPageSelected(int arg0) { 76 for (int i = 0; i < ids.length; i++) { 77 if (arg0 == i) { 78 // 亮点 79 dots[i].setImageResource(R.drawable.login_point_selected); 80 } else { 81 // 暗点 82 dots[i].setImageResource(R.drawable.login_point); 83 } 84 } 85 } 86 87 }
1 <?xml version="1.0" encoding="utf-8"?> 2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" > 5 6 <android.support.v4.view.ViewPager 7 android:id="@+id/viewpager" 8 android:layout_width="fill_parent" 9 android:layout_height="fill_parent" 10 android:background="#00000000" > 11 </android.support.v4.view.ViewPager> 12 13 <!-- 底部三个点 --> 14 <LinearLayout 15 android:id="@+id/ll" 16 android:layout_width="fill_parent" 17 android:layout_height="wrap_content" 18 android:layout_alignParentBottom="true" 19 android:gravity="center_horizontal" 20 android:orientation="horizontal" > 21 <!-- 选中点 --> 22 <ImageView 23 android:id="@+id/iv1" 24 android:layout_width="wrap_content" 25 android:layout_height="wrap_content" 26 android:src="@drawable/login_point_selected" /> 27 <!-- 未选中点 --> 28 <ImageView 29 android:id="@+id/iv2" 30 android:layout_width="wrap_content" 31 android:layout_height="wrap_content" 32 android:src="@drawable/login_point" /> 33 <!-- 未选中点 --> 34 <ImageView 35 android:id="@+id/iv3" 36 android:layout_width="wrap_content" 37 android:layout_height="wrap_content" 38 android:src="@drawable/login_point" /> 39 </LinearLayout> 40 41 </RelativeLayout>
DEMO下载:http://pan.baidu.com/s/1i3vHoLv