主类GuideViewDemoActivity.java:

package com.andyidea.guidedemo;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.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.view.ViewGroup.LayoutParams;import android.view.Window;import android.widget.ImageView;public class GuideViewDemoActivity extends Activity {    private ViewPager viewPager;      private ArrayList<View> pageViews;      private ViewGroup main, group;      private ImageView imageView;      private ImageView[] imageViews;     /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        this.requestWindowFeature(Window.FEATURE_NO_TITLE);                LayoutInflater inflater = getLayoutInflater();          pageViews = new ArrayList<View>();          pageViews.add(inflater.inflate(R.layout.item01, null));          pageViews.add(inflater.inflate(R.layout.item02, null));          pageViews.add(inflater.inflate(R.layout.item03, null));          pageViews.add(inflater.inflate(R.layout.item04, null));             imageViews = new ImageView[pageViews.size()];          main = (ViewGroup)inflater.inflate(R.layout.main, null);                  // group是R.layou.main中的负责包裹小圆点的LinearLayout.          group = (ViewGroup)main.findViewById(R.id.viewGroup);            viewPager = (ViewPager)main.findViewById(R.id.guidePages);            for (int i = 0; i < pageViews.size(); i++) {              imageView = new ImageView(GuideViewDemoActivity.this);              imageView.setLayoutParams(new LayoutParams(20,20));              imageView.setPadding(20, 0, 20, 0);              imageViews[i] = imageView;              if (i == 0) {                  //默认选中第一张图片                imageViews[i].setBackgroundResource(R.drawable.page_indicator_focused);              } else {                  imageViews[i].setBackgroundResource(R.drawable.page_indicator);              }              group.addView(imageViews[i]);          }            setContentView(main);            viewPager.setAdapter(new GuidePageAdapter());          viewPager.setOnPageChangeListener(new GuidePageChangeListener());      }        /** 指引页面Adapter */    class GuidePageAdapter extends PagerAdapter {                @Override          public int getCount() {              return pageViews.size();          }            @Override          public boolean isViewFromObject(View arg0, Object arg1) {              return arg0 == arg1;          }            @Override          public int getItemPosition(Object object) {              // TODO Auto-generated method stub              return super.getItemPosition(object);          }            @Override          public void destroyItem(View arg0, int arg1, Object arg2) {              // TODO Auto-generated method stub              ((ViewPager) arg0).removeView(pageViews.get(arg1));          }            @Override          public Object instantiateItem(View arg0, int arg1) {              // TODO Auto-generated method stub              ((ViewPager) arg0).addView(pageViews.get(arg1));              return pageViews.get(arg1);          }            @Override          public void restoreState(Parcelable arg0, ClassLoader arg1) {              // TODO Auto-generated method stub            }            @Override          public Parcelable saveState() {              // TODO Auto-generated method stub              return null;          }            @Override          public void startUpdate(View arg0) {              // TODO Auto-generated method stub            }            @Override          public void finishUpdate(View arg0) {              // TODO Auto-generated method stub            }      }         /** 指引页面改监听器 */    class GuidePageChangeListener implements OnPageChangeListener {            @Override          public void onPageScrollStateChanged(int arg0) {              // TODO Auto-generated method stub            }            @Override          public void onPageScrolled(int arg0, float arg1, int arg2) {              // TODO Auto-generated method stub            }            @Override          public 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);                  }              }          }        }      }

main.xml:

<?xml version="1.0" encoding="utf-8"?><FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >    <android.support.v4.view.ViewPager        android:id="@+id/guidePages"        android:layout_width="fill_parent"        android:layout_height="wrap_content"/>           <RelativeLayout          android:layout_width="fill_parent"          android:layout_height="wrap_content"          android:orientation="vertical" >    <LinearLayout          android:id="@+id/viewGroup"          android:layout_width="fill_parent"          android:layout_height="wrap_content"          android:layout_alignParentBottom="true"          android:layout_marginBottom="30dp"          android:gravity="center_horizontal"          android:orientation="horizontal" >      </LinearLayout>      </RelativeLayout></FrameLayout>

item01.xml:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >        <ImageView          android:layout_width="fill_parent"          android:layout_height="fill_parent"          android:background="@drawable/feature_guide_0" >      </ImageView>    </LinearLayout>

item02.xml:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >        <ImageView          android:layout_width="fill_parent"          android:layout_height="fill_parent"          android:background="@drawable/feature_guide_1" >      </ImageView>    </LinearLayout>

剩下的布局与上边的类似。

更多相关文章

  1. android:maxLines和android:ellipsize同时使用导致显示异常
  2. android:maxLines和android:ellipsize同时使用导致显示异常
  3. 解决activity加上Theme.Translucent.NoTitleBar 页面跳转显示桌
  4. Activity页面切换的效果
  5. Android问题:com.android.builder.packaging.DuplicateFileExcept
  6. Android(安卓)LaunchMode and StartActivityForResult
  7. Android接入WebView(五)——浏览器制作总结及源码分享
  8. 《Android移动应用基础教程》(Android(安卓)Studio)(第二版)黑马教程
  9. Android之——自定义TextView

随机推荐

  1. android之Notification版本兼容性问题
  2. Android版本28用http请求CLEARTEXT commu
  3. Android——文本类控件
  4. Android requestFeature() must be calle
  5. Android学习笔记_57_ExpandableListView
  6. android > PopupWindow 底部弹出框
  7. Android 页面或文件或网络请求时的加载动
  8. Android应用程序键盘(Keyboard)消息处理机
  9. android 实现沉浸式,状态栏
  10. selinux android property_context作用(待