您的位置:首页 > 移动开发 > Android开发

Android-ViewPager使用示例(二)

2015-08-29 14:28 405 查看
根据上一篇Android-ViewPager使用示例

本篇介绍导航点

工程目录结构



核心代码段:

Guide.java

[code]package com.example.viewpager;

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;

public class Guide extends Activity implements OnPageChangeListener {
    ViewPager mViewPager;
    ViewPagerAdapter mViewPagerAdapter;
    List<View> views;
    // 找到三个ImageView
    private ImageView[] mDots;
    // 找到三个ID
    private int ids[] = { R.id.d1, R.id.d2, R.id.d3 };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.guide);
        initViews();
        initDots();
    }

    void initViews() {
        LayoutInflater inflater = LayoutInflater.from(this);

        views = new ArrayList<View>();
        views.add(inflater.inflate(R.layout.one_layout, null));
        views.add(inflater.inflate(R.layout.two_layout, null));
        views.add(inflater.inflate(R.layout.three_layout, null));
        mViewPagerAdapter = new ViewPagerAdapter(views, this);
        // 实现mViewPager
        mViewPager = (ViewPager) findViewById(R.id.viewPager);
        mViewPager.setAdapter(mViewPagerAdapter);
        // 监听翻页
        mViewPager.setOnPageChangeListener(this);
    }
    private void initDots() {
        mDots = new ImageView[views.size()];
        for (int i = 0; i < views.size(); i++) {
            mDots[i] = (ImageView) findViewById(ids[i]);
        }
    }
    @Override
    public void onPageScrollStateChanged(int arg0) {
        // 当滑动状态改变时调用
    }
    @Override
    public void onPageScrolled(int arg0, float arg1, int arg2) {
        // 当页面被滑动时调用
    }
    @Override
    public void onPageSelected(int arg0) {
        // 当前新的页面被选中时调用
        for (int i = 0; i < ids.length; i++) {
            if(arg0 == i){
                mDots[i].setImageResource(R.drawable.page_indicator_pressed);
            }else{
                mDots[i].setImageResource(R.drawable.page_indicator_normal);
            }
        }
    }
}


guide.xml

[code]<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <android.support.v4.view.ViewPager
        android:id="@+id/viewPager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#90EE90" >
    </android.support.v4.view.ViewPager>

    <LinearLayout
        android:id="@+id/ll"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:gravity="center_horizontal"
        android:orientation="horizontal" >

        <ImageView
            android:id="@+id/d1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/page_indicator_normal" />

        <ImageView
            android:id="@+id/d2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/page_indicator_normal" />

        <ImageView
            android:id="@+id/d3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/page_indicator_pressed" />
    </LinearLayout>

</RelativeLayout>


注意1:监听OnPageChangeListener

注意2:注意png图片不能太大

其他部分代码请参考‘Android-ViewPager使用示例’

效果图:

第一页




第二页



需要原码请留言,看到速回
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: