pager_layout.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:ignore="UselessParent" >    <android.support.v4.view.ViewPager        android:id="@+id/guidePages"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_above="@+id/viewGroup" />    <LinearLayout        android:id="@+id/viewGroup"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_alignParentBottom="true        android:gravity="center_horizontal"        android:orientation="horizontal" >    </LinearLayout></RelativeLayout>
MainActivity.java:

package com.zh.xiaodiantest;import java.util.ArrayList;import android.app.Activity;import android.os.Bundle;import android.os.Parcelable;import android.support.v4.view.PagerAdapter;import android.support.v4.view.ViewPager;import android.support.v4.view.ViewPager.OnPageChangeListener;import android.view.View;import android.view.ViewGroup;import android.view.ViewGroup.LayoutParams;import android.view.Window;import android.widget.ImageView;import android.widget.ImageView.ScaleType;import android.widget.LinearLayout;public class MainActivity extends Activity {private ViewPager viewPager;private ArrayList<View> pageViews;private ImageView imageView;private ImageView[] imageViews;// 包裹小圆点的LinearLayoutprivate ViewGroup group;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 设置无标题窗口requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.pager_layout);int[] img = new int[] { R.drawable.no1, R.drawable.no2, R.drawable.no3,R.drawable.no4, R.drawable.no5 };pageViews = new ArrayList<View>();for (int i = 0; i < img.length; i++) {LinearLayout layout = new LinearLayout(this);LayoutParams ltp = new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT);final ImageView imageView = new ImageView(this);imageView.setScaleType(ScaleType.CENTER_INSIDE);imageView.setImageResource(img[i]);layout.addView(imageView, ltp);pageViews.add(layout);}imageViews = new ImageView[pageViews.size()];group = (ViewGroup) this.findViewById(R.id.viewGroup);viewPager = (ViewPager) this.findViewById(R.id.guidePages);/** * 有几张图片 下面就显示几个小圆点 */for (int i = 0; i < pageViews.size(); i++) {LinearLayout.LayoutParams margin = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT);// 设置每个小圆点距离左边的间距margin.setMargins(15, 0, 0, 0);imageView = new ImageView(MainActivity.this);// 设置每个小圆点的宽高imageView.setLayoutParams(new LayoutParams(25, 25));imageViews[i] = imageView;if (i == 0) {// 默认选中第一张图片imageViews[i].setBackgroundResource(R.drawable.page_indicator_focused);} else {// 其他图片都设置未选中状态imageViews[i].setBackgroundResource(R.drawable.page_indicator_unfocused);}group.addView(imageViews[i], margin);}// 给viewpager设置适配器viewPager.setAdapter(new GuidePageAdapter());// 给viewpager设置监听事件viewPager.setOnPageChangeListener(new GuidePageChangeListener());}// 指引页面数据适配器class GuidePageAdapter extends PagerAdapter {@Overridepublic int getCount() {return pageViews.size();}@Overridepublic boolean isViewFromObject(View arg0, Object arg1) {return arg0 == arg1;}@Overridepublic int getItemPosition(Object object) {// TODO Auto-generated method stubreturn super.getItemPosition(object);}@Overridepublic void destroyItem(View arg0, int arg1, Object arg2) {// TODO Auto-generated method stub((ViewPager) arg0).removeView(pageViews.get(arg1));}@Overridepublic Object instantiateItem(View arg0, int arg1) {// TODO Auto-generated method stub((ViewPager) arg0).addView(pageViews.get(arg1));return pageViews.get(arg1);}@Overridepublic void restoreState(Parcelable arg0, ClassLoader arg1) {// TODO Auto-generated method stub}@Overridepublic Parcelable saveState() {// TODO Auto-generated method stubreturn null;}@Overridepublic void startUpdate(View arg0) {// TODO Auto-generated method stub}@Overridepublic void finishUpdate(View arg0) {// TODO Auto-generated method stub}}// 指引页面更改事件监听器class GuidePageChangeListener implements OnPageChangeListener {@Overridepublic void onPageScrollStateChanged(int arg0) {// TODO Auto-generated method stub}@Overridepublic void onPageScrolled(int arg0, float arg1, int arg2) {// TODO Auto-generated method stub}@Overridepublic void onPageSelected(int arg0) {// 遍历数组让当前选中图片下的小圆点设置颜色for (int i = 0; i < imageViews.length; i++) {imageViews[arg0].setBackgroundResource(R.drawable.page_indicator_focused);if (arg0 != i) {imageViews[i].setBackgroundResource(R.drawable.page_indicator_unfocused);}}}}}
完整打包代码:http://download.csdn.net/detail/u014071669/7184439

更多相关文章

  1. Android根据属性值自定义改变图片颜色
  2. Android中GPS/Map的运用
  3. android 怎样用代码设置墙纸
  4. android dialog
  5. 开源项目Universal Image Loader for Android(安卓)说明文档 (2)
  6. android 自定义toggle Button按钮
  7. android实现图片模糊背景效果
  8. Android(安卓)HttpClient
  9. Android一直震动源码

随机推荐

  1. ADB(Android Debug Bridge)学习
  2. Android工作经验一年总结。(零基础自学And
  3. 评论:Android真不适合做游戏
  4. Jollen: Android 的 HAL 技術
  5. 学习OpenGL ES for Android(二)
  6. 赠送50 份《Android 面试专题指南》
  7. 一起学android之对话框Dialog的创建(7)
  8. Android(安卓)Things:用户驱动-传感器
  9. Android和ROS的通信 消息的传递
  10. Android 的媒体路由功能应用与框架解析