Android实现左右滑动的指引效果

本文介绍如何在Android应用中实现左右滑动的指引效果,通常用于初次启动时提供用户帮助。通过手指滑动浏览多个页面,最后一页点击可进入应用。具体实现涉及布局文件设置和SharedPreferences的使用,确保只在首次启动时展示引导界面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在一般情况下,Android左右滑动的指引效果是指在应用第一次启动时,会显示一些帮助界面,用户可通过手指左右滑动来了解应用信息。当用户滑动到最后一页时,可通过点击进入游戏应用。如下图所示:


直接上代码,布局文件如下:

<1>activivty_guide_view_01.xml

<?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:layout_gravity="center"
    android:background="@color/textBgColor" >

    <LinearLayout
        android:id="@id/ll_guide_view_01_01"
        android:layout_width="match_parent"
        android:layout_height="20dp"
        android:orientation="vertical" />

    <LinearLayout
        android:id="@id/ll_guide_view_01_02"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/ll_guide_view_01_01"
        android:background="@drawable/divider_horizontal_line"
        android:orientation="vertical" />

    <LinearLayout
        android:id="@id/ll_guide_view_01_03"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/ll_guide_view_01_02"
        android:orientation="vertical" >

        <ImageView
            android:id="@id/iv_guide_view_01"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:contentDescription="@string/gudie_view_01_image"
            android:src="@drawable/guide_view_01" />
    </LinearLayout>

    <LinearLayout
        android:id="@id/ll_guide_view_01_04"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/ll_guide_view_01_03"
        android:layout_margin="@dimen/activity_guide_view_margin"
        android:background="@drawable/divider_horizontal_line"
        android:orientation="vertical" />

    <LinearLayout
        android:id="@id/ll_guide_view_01_05"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/ll_guide_view_01_04"
        android:orientation="vertical" >

        <TextView
            android:id="@id/tv_guide_view_01"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingLeft="@dimen/activity_guide_view_margin"
            android:paddingRight="@dimen/activity_guide_view_margin"
            android:text="@string/guide_view_01_text"
            android:textColor="@color/textColor"
            android:textSize="14sp" />
    </LinearLayout>

</RelativeLayout>

<2>activivty_guide_view_02.xml

<?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:layout_gravity="center"
    android:background="@color/textBgColor" >

    <LinearLayout
        android:id="@id/ll_guide_view_02_01"
        android:layout_width="match_parent"
        android:layout_height="20dp"
        android:orientation="vertical" />

    <LinearLayout
        android:id="@id/ll_guide_view_02_02"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/ll_guide_view_02_01"
        android:background="@drawable/divider_horizontal_line"
        android:orientation="vertical" />

    <LinearLayout
        android:id="@id/ll_guide_view_02_03"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/ll_guide_view_02_02"
        android:orientation="vertical" >

        <ImageView
            android:id="@id/iv_guide_view_02"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:contentDescription="@string/gudie_view_02_image"
            android:src="@drawable/guide_view_02" />
    </LinearLayout>

    <LinearLayout
        android:id="@id/ll_guide_view_02_04"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/ll_guide_view_02_03"
        android:layout_margin="@dimen/activity_guide_view_margin"
        android:background="@drawable/divider_horizontal_line"
        android:orientation="vertical" />

    <LinearLayout
        android:id="@id/ll_guide_view_02_05"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/ll_guide_view_02_04"
        android:orientation="vertical" >

        <TextView
            android:id="@id/tv_guide_view_02"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingLeft="@dimen/activity_guide_view_margin"
            android:paddingRight="@dimen/activity_guide_view_margin"
            android:text="@string/guide_view_01_text"
            android:textColor="@color/textColor"
            android:textSize="14sp" />
    </LinearLayout>

</RelativeLayout>

<3>activivty_guide_view_03.xml

<?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:layout_gravity="center"
    android:background="@color/textBgColor" >

    <LinearLayout
        android:id="@id/ll_guide_view_03_01"
        android:layout_width="match_parent"
        android:layout_height="20dp"
        android:orientation="vertical" />

    <LinearLayout
        android:id="@id/ll_guide_view_03_02"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/ll_guide_view_03_01"
        android:background="@drawable/divider_horizontal_line"
        android:orientation="vertical" />

    <LinearLayout
        android:id="@id/ll_guide_view_03_03"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/ll_guide_view_03_02"
        android:orientation="vertical" >

        <ImageView
            android:id="@id/iv_guide_view_03"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:contentDescription="@string/gudie_view_03_image"
            android:src="@drawable/guide_view_03" />
    </LinearLayout>

    <LinearLayout
        android:id="@id/ll_guide_view_03_04"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/ll_guide_view_03_03"
        android:layout_margin="@dimen/activity_guide_view_margin"
        android:background="@drawable/divider_horizontal_line"
        android:orientation="vertical" />

    <LinearLayout
        android:id="@id/ll_guide_view_03_05"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/ll_guide_view_03_04"
        android:orientation="vertical" >

        <TextView
            android:id="@id/tv_guide_view_03"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingLeft="@dimen/activity_guide_view_margin"
            android:paddingRight="@dimen/activity_guide_view_margin"
            android:text="@string/guide_view_02_text"
            android:textColor="@color/textColor"
            android:textSize="14sp" />
    </LinearLayout>

</RelativeLayout>
<4>activivty_guide_view_04.xml

<?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:layout_gravity="center"
    android:background="@color/textBgColor" >

    <LinearLayout
        android:id="@id/ll_guide_view_04_01"
        android:layout_width="match_parent"
        android:layout_height="20dp"
        android:orientation="vertical" />

    <LinearLayout
        android:id="@id/ll_guide_view_04_02"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/ll_guide_view_04_01"
        android:background="@drawable/divider_horizontal_line"
        android:orientation="vertical" />

    <LinearLayout
        android:id="@id/ll_guide_view_04_03"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/ll_guide_view_04_02"
        android:orientation="vertical" >

        <ImageView
            android:id="@id/iv_guide_view_04"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:contentDescription="@string/gudie_view_04_image"
            android:src="@drawable/guide_view_04" />
    </LinearLayout>

    <LinearLayout
        android:id="@id/ll_guide_view_04_04"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/ll_guide_view_04_03"
        android:layout_margin="@dimen/activity_guide_view_margin"
        android:background="@drawable/divider_horizontal_line"
        android:orientation="vertical" />

    <LinearLayout
        android:id="@id/ll_guide_view_04_05"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/ll_guide_view_04_04"
        android:orientation="vertical" >

        <TextView
            android:id="@id/tv_guide_view_04"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingLeft="@dimen/activity_guide_view_margin"
            android:paddingRight="@dimen/activity_guide_view_margin"
            android:text="@string/guide_view_02_text"
            android:textColor="@color/textColor"
            android:textSize="14sp" />
    </LinearLayout>

</RelativeLayout>

<5>activivty_guide_view_05.xml

<?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:layout_gravity="center"
    android:background="@color/textBgColor" >

    <LinearLayout
        android:id="@id/ll_guide_view_05_01"
        android:layout_width="match_parent"
        android:layout_height="20dp"
        android:orientation="vertical" />

    <LinearLayout
        android:id="@id/ll_guide_view_05_02"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/ll_guide_view_05_01"
        android:background="@drawable/divider_horizontal_line"
        android:orientation="vertical" />

    <LinearLayout
        android:id="@id/ll_guide_view_05_03"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/ll_guide_view_05_02"
        android:orientation="vertical" >

        <ImageView
            android:id="@id/iv_guide_view_05"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:contentDescription="@string/gudie_view_05_image"
            android:src="@drawable/guide_view_05" />
    </LinearLayout>

    <LinearLayout
        android:id="@id/ll_guide_view_05_04"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/ll_guide_view_05_03"
        android:layout_margin="@dimen/activity_guide_view_margin"
        android:background="@drawable/divider_horizontal_line"
        android:orientation="vertical" />

    <LinearLayout
        android:id="@id/ll_guide_view_05_05"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/ll_guide_view_05_04"
        android:orientation="vertical" >

        <TextView
            android:id="@id/tv_guide_view_05"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingLeft="@dimen/activity_guide_view_margin"
            android:paddingRight="@dimen/activity_guide_view_margin"
            android:text="@string/guide_view_02_text"
            android:textColor="@color/textColor"
            android:textSize="14sp" />
    </LinearLayout>

</RelativeLayout>

<6>activivty_guide_view_06.xml

<?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:layout_gravity="center"
    android:background="@color/textBgColor" >

    <LinearLayout
        android:id="@id/ll_guide_view_06_01"
        android:layout_width="match_parent"
        android:layout_height="20dp"
        android:orientation="vertical" />

    <LinearLayout
        android:id="@id/ll_guide_view_06_02"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/ll_guide_view_06_01"
        android:background="@drawable/divider_horizontal_line"
        android:orientation="vertical" />

    <LinearLayout
        android:id="@id/ll_guide_view_06_03"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/ll_guide_view_06_02"
        android:orientation="vertical" >

        <ImageView
            android:id="@id/iv_guide_view_06"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:contentDescription="@string/gudie_view_06_image"
            android:src="@drawable/guide_view_06" />
    </LinearLayout>

    <LinearLayout
        android:id="@id/ll_guide_view_06_04"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/ll_guide_view_06_03"
        android:layout_margin="@dimen/activity_guide_view_margin"
        android:background="@drawable/divider_horizontal_line"
        android:orientation="vertical" />

    <LinearLayout
        android:id="@id/ll_guide_view_06_05"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/ll_guide_view_06_04"
        android:orientation="vertical" >

        <TextView
            android:id="@id/tv_guide_view_06"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingLeft="@dimen/activity_guide_view_margin"
            android:paddingRight="@dimen/activity_guide_view_margin"
            android:text="@string/guide_view_03_text"
            android:textColor="@color/textColor"
            android:textSize="14sp" />
    </LinearLayout>

</RelativeLayout>

<7>activivty_guide_view_07.xml

<?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:layout_gravity="center"
    android:background="@color/textBgColor" >

    <LinearLayout
        android:id="@id/ll_guide_view_07_01"
        android:layout_width="match_parent"
        android:layout_height="20dp"
        android:orientation="vertical" />

    <LinearLayout
        android:id="@id/ll_guide_view_07_02"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/ll_guide_view_07_01"
        android:background="@drawable/divider_horizontal_line"
        android:orientation="vertical" />

    <LinearLayout
        android:id="@id/ll_guide_view_07_03"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/ll_guide_view_07_02"
        android:orientation="vertical" >

        <ImageView
            android:id="@id/iv_guide_view_07"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:contentDescription="@string/gudie_view_07_image"
            android:src="@drawable/guide_view_07" />
    </LinearLayout>

    <LinearLayout
        android:id="@id/ll_guide_view_07_04"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/ll_guide_view_07_03"
        android:layout_margin="@dimen/activity_guide_view_margin"
        android:background="@drawable/divider_horizontal_line"
        android:orientation="vertical" />

    <LinearLayout
        android:id="@id/ll_guide_view_07_05"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/ll_guide_view_07_04"
        android:orientation="vertical" >

        <TextView
            android:id="@id/tv_guide_view_07"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingLeft="@dimen/activity_guide_view_margin"
            android:paddingRight="@dimen/activity_guide_view_margin"
            android:text="@string/guide_view_04_text"
            android:textColor="@color/textColor"
            android:textSize="14sp" />
    </LinearLayout>

    <LinearLayout
        android:id="@id/ll_guide_view_07_06"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/ll_guide_view_07_05"
        android:layout_marginTop="@dimen/activity_guide_view_margin"
        android:gravity="center"
        android:orientation="vertical" >

        <Button
            android:id="@id/btn_guide_view"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/custom_button"
            android:onClick="enterGame"
            android:text="@string/enter_game"
            android:textColor="@color/textColor"
            android:textSize="20sp" />
    </LinearLayout>

</RelativeLayout>
<8>activity_guide_view_item_header.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/guide_view_top_back_image"
    android:orientation="horizontal" >

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:layout_gravity="center_vertical"
        android:layout_marginLeft="5dip"
        android:gravity="center"
        android:orientation="vertical" >

        <TextView
            android:id="@id/tv_guide_view_exit"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/gudie_view_btn_back_bg"
            android:clickable="true"
            android:gravity="center"
            android:paddingLeft="@dimen/activity_guide_view_item_header_margin"
            android:text="@string/exit"
            android:textColor="@color/itemHeaderTextColor"
            android:textSize="14sp" />
    </LinearLayout>

    <TextView
        android:id="@id/tv_guide_view_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:layout_centerVertical="true"
        android:text="@string/app_name"
        android:textColor="@color/itemHeaderTextColor"
        android:textSize="16sp" />

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:layout_gravity="center_vertical"
        android:layout_marginRight="5dip"
        android:gravity="center"
        android:orientation="vertical" >

        <TextView
            android:id="@id/tv_guide_view_home"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/guide_view_btn_home_bg"
            android:clickable="true"
            android:gravity="center"
            android:text="@string/home"
            android:textColor="@color/itemHeaderTextColor"
            android:textSize="14sp" />
    </LinearLayout>

</RelativeLayout>

<9>activity_guide_view.xml

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <include
            android:id="@+id/item_header"
            layout="@layout/activity_guide_view_item_header" />

        <android.support.v4.view.ViewPager
            android:id="@id/vp_guide_view"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" >

            <LinearLayout
                android:id="@id/ll_view_group"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_marginBottom="40dp"
                android:gravity="center_horizontal"
                android:orientation="horizontal" />
        </RelativeLayout>
    </LinearLayout>

</FrameLayout>

<10>GuideViewActivity.java

/**
 * 
 */
package com.i114gbox.aglieguy;

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

import android.content.Context;
import android.content.Intent;
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.View.OnClickListener;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.widget.ImageView;
import android.widget.TextView;

import com.i114gbox.aglieguy.utils.CustomProgressDialogExitTaskUtils;
import com.i114gbox.sdk.activity.I114gBoxActivity;
import com.i114gbox.sdk.activity.dialog.I114gBoxProgressDialog;
import com.i114gbox.sdk.config.I114gBoxConfig;
import com.i114gbox.sdk.constant.I114gBoxConstant;
import com.i114gbox.sdk.utils.I114gBoxCollectActivityUtils;
import com.i114gbox.sdk.utils.I114gBoxLogUtils;
import com.i114gbox.sdk.utils.I114gBoxResourceUtils;

/**
 * 引导Activity
 * 
 * @author SJC
 * 
 */
public class GuideViewActivity extends I114gBoxActivity implements
		OnClickListener {
	private static String TAG = "GuideViewActivity";

	private Context ctx = null;
	private List<View> pageViews;
	private ImageView[] imageViews;
	private ImageView imageView;
	private ViewGroup main;
	private ViewGroup group;
	private ViewPager viewPager;
	private I114gBoxProgressDialog i114gBoxProgressDialog = null;
	private ViewGroup viewGroup;
	private int count;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		I114gBoxLogUtils.d(TAG, "The onCreate method execute.");
		I114gBoxConfig.setDebugEnable(true);// 打开LOG
		super.onCreate(savedInstanceState);

		I114gBoxCollectActivityUtils.getInstance().addActivity(this);// 收集Activity

		ctx = this;
		count = mBaseSettings.getInt(
				I114gBoxConstant.PREFERENCE_KEY_LAUNCH_COUNT, 0);
		I114gBoxLogUtils.i(TAG, "count:" + count);

		if (count != 0) {// 当应用并不是第一次启动时
			Intent intent = new Intent(ctx, MainActivity.class);
			ctx.startActivity(intent);
			overridePendingTransition(
					I114gBoxResourceUtils.getAnimId(ctx, "zoomin"),
					I114gBoxResourceUtils.getAnimId(ctx, "zoomout"));
		} else {// 当应用为第一次启动时
			count++;
			mBaseSettings
					.edit()
					.putInt(I114gBoxConstant.PREFERENCE_KEY_LAUNCH_COUNT, count)
					.commit();

			LayoutInflater layoutInflater = getLayoutInflater();
			pageViews = new ArrayList<View>();
			// 加载左右滑动指引效果的图片布局资源
			pageViews.add(layoutInflater.inflate(I114gBoxResourceUtils
					.getLayoutId(ctx, "activivty_guide_view_01"), null));
			pageViews.add(layoutInflater.inflate(I114gBoxResourceUtils
					.getLayoutId(ctx, "activivty_guide_view_02"), null));
			pageViews.add(layoutInflater.inflate(I114gBoxResourceUtils
					.getLayoutId(ctx, "activivty_guide_view_03"), null));
			pageViews.add(layoutInflater.inflate(I114gBoxResourceUtils
					.getLayoutId(ctx, "activivty_guide_view_04"), null));
			pageViews.add(layoutInflater.inflate(I114gBoxResourceUtils
					.getLayoutId(ctx, "activivty_guide_view_05"), null));
			pageViews.add(layoutInflater.inflate(I114gBoxResourceUtils
					.getLayoutId(ctx, "activivty_guide_view_06"), null));
			pageViews.add(layoutInflater.inflate(I114gBoxResourceUtils
					.getLayoutId(ctx, "activivty_guide_view_07"), null));
			imageViews = new ImageView[pageViews.size()];
			main = (ViewGroup) layoutInflater.inflate(I114gBoxResourceUtils
					.getLayoutId(ctx, "activity_guide_view"), null);
			group = (ViewGroup) main.findViewById(I114gBoxResourceUtils.getId(
					ctx, "ll_view_group"));
			viewPager = (ViewPager) main.findViewById(I114gBoxResourceUtils
					.getId(ctx, "vp_guide_view"));
			for (int i = 0; i < pageViews.size(); i++) {
				imageView = new ImageView(ctx);
				imageView.setLayoutParams(new LayoutParams(20, 20));
				imageView.setPadding(20, 0, 20, 0);
				imageViews[i] = imageView;
				// 默认第一张图为显示状态
				if (i == 0) {
					imageViews[i].setBackgroundResource(I114gBoxResourceUtils
							.getDrawableId(ctx,
									"guide_view_page_indicator_focused"));
				} else {
					imageViews[i].setBackgroundResource(I114gBoxResourceUtils
							.getDrawableId(ctx, "guide_view_page_indicator"));
				}

				group.addView(imageViews[i]);
			}

			// 设置布局文件
			setContentView(main);
			// 设置引导界面适配器
			viewPager.setAdapter(new GuideViewPagerAdapter());
			// 设置引导界面监听器
			viewPager
					.setOnPageChangeListener(new GuideViewPageChangeListener());

			TextView guideExitTextView = (TextView) main
					.findViewById(I114gBoxResourceUtils.getId(ctx,
							"tv_guide_view_exit"));
			TextView guideHomeTextView = (TextView) main
					.findViewById(I114gBoxResourceUtils.getId(ctx,
							"tv_guide_view_home"));

			viewGroup = (ViewGroup) layoutInflater.inflate(
					I114gBoxResourceUtils.getLayoutId(ctx,
							"activivty_guide_view_07"), null);
			guideExitTextView.setOnClickListener(this);
			guideHomeTextView.setOnClickListener(this);
		}
	}

	/**
	 * 引导界面适配器
	 * 
	 * @author SJC
	 * 
	 */
	class GuideViewPagerAdapter extends PagerAdapter {

		/** 获取指引的数量 **/
		@Override
		public int getCount() {
			return pageViews.size();
		}

		@Override
		public boolean isViewFromObject(View arg0, Object arg1) {
			I114gBoxLogUtils.d("GuideViewPagerAdapter",
					"The isViewFromObject method execute.");
			return arg0 == arg1;
		}

		/** 获取指引的位置 **/
		@Override
		public int getItemPosition(Object object) {
			I114gBoxLogUtils.d("GuideViewPagerAdapter",
					"The getItemPosition method execute.");
			I114gBoxLogUtils.i("GuideViewPagerAdapter", "The item position:"
					+ super.getItemPosition(object));
			return super.getItemPosition(object);
		}

		@Override
		public void destroyItem(ViewGroup container, int position, Object object) {
			I114gBoxLogUtils.d("GuideViewPagerAdapter",
					"The destroyItem method execute.");
			I114gBoxLogUtils.i("GuideViewPagerAdapter", "position:" + position);
			container.removeView(pageViews.get(position));
		}

		@Override
		public Object instantiateItem(ViewGroup container, int position) {
			I114gBoxLogUtils.d("GuideViewPagerAdapter",
					"The instantiateItem method execute.");
			I114gBoxLogUtils.i("GuideViewPagerAdapter", "position:" + position);
			container.addView(pageViews.get(position));
			return pageViews.get(position);
		}

		@Override
		public void restoreState(Parcelable state, ClassLoader loader) {
			I114gBoxLogUtils.d("GuideViewPagerAdapter",
					"The restoreState method execute.");
			super.restoreState(state, loader);
		}

		@Override
		public Parcelable saveState() {
			I114gBoxLogUtils.d("GuideViewPagerAdapter",
					"The saveState method execute.");
			return super.saveState();
		}

	}

	/**
	 * 引导界面监听器
	 * 
	 * @author SJC
	 * 
	 */
	class GuideViewPageChangeListener implements OnPageChangeListener {

		@Override
		public void onPageScrollStateChanged(int arg0) {
			I114gBoxLogUtils.d("GuideViewPageChangeListener",
					"The onPageScrollStateChanged method execute.");
			I114gBoxLogUtils.i(TAG, "arg0:" + arg0);
		}

		@Override
		public void onPageScrolled(int arg0, float arg1, int arg2) {
			I114gBoxLogUtils.d("GuideViewPageChangeListener",
					"The onPageScrolled method execute.");
			I114gBoxLogUtils.i("GuideViewPageChangeListener", "arg0:" + arg0
					+ "|" + "arg1:" + arg1 + "|" + "arg2:" + arg2);
		}

		@Override
		public void onPageSelected(int arg0) {
			I114gBoxLogUtils.d("GuideViewPageChangeListener",
					"The onPageSelected method execute.");
			I114gBoxLogUtils.i("GuideViewPageChangeListener", "arg0:" + arg0);
			for (int i = 0; i < imageViews.length; i++) {
				imageViews[arg0]
						.setBackgroundResource(I114gBoxResourceUtils
								.getDrawableId(ctx,
										"guide_view_page_indicator_focused"));
				if (arg0 != i) {
					imageViews[i].setBackgroundResource(I114gBoxResourceUtils
							.getDrawableId(ctx, "guide_view_page_indicator"));
				}
			}
		}

	}

	@Override
	public void onClick(View v) {
		if (v.getId() == I114gBoxResourceUtils.getId(ctx, "tv_guide_view_exit")) {
			CustomProgressDialogExitTaskUtils customProgressDialogAsyncTaskUtils = new CustomProgressDialogExitTaskUtils(
					ctx, i114gBoxProgressDialog);
			customProgressDialogAsyncTaskUtils.execute(2000);// 执行Task
		} else if (v.getId() == I114gBoxResourceUtils.getId(ctx,
				"tv_guide_view_home")) {
			Intent intent = new Intent(ctx, MainActivity.class);
			ctx.startActivity(intent);
			overridePendingTransition(
					I114gBoxResourceUtils.getAnimId(ctx, "zoomin"),
					I114gBoxResourceUtils.getAnimId(ctx, "zoomout"));
		}
	}

	@Override
	protected void onDestroy() {
		I114gBoxLogUtils.d(TAG, "The onDestory method execute.");
		if (null != i114gBoxProgressDialog) {
			i114gBoxProgressDialog.dismiss();
			i114gBoxProgressDialog = null;
		}
		super.onDestroy();
	}

	/** 进入游戏 **/
	public void enterGame(View view) {
		I114gBoxLogUtils.d(TAG, "enter game");
		Intent intent = new Intent(viewGroup.getContext(), MainActivity.class);
		viewGroup.getContext().startActivity(intent);
		overridePendingTransition(
				I114gBoxResourceUtils.getAnimId(ctx, "zoomin"),
				I114gBoxResourceUtils.getAnimId(ctx, "zoomout"));
	}

}

注意事项:

(1)当应用启动时,将启动数(初始为0)加1

(2)将启动数保存到SharedPreferences中,第一次启动游戏应用,则出现引导界面;随后启动游戏应用时,则直接进入游戏中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值