日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

ViewPager实现引导界面以及进入下一个activity解决办法

發(fā)布時(shí)間:2024/1/17 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ViewPager实现引导界面以及进入下一个activity解决办法 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.



這次項(xiàng)目中實(shí)現(xiàn)了用戶引導(dǎo)滑動(dòng)圖片,到最后一張圖片的時(shí)候,我認(rèn)為理想的是同時(shí)具備以下兩點(diǎn):

1)用戶可以點(diǎn)擊上面的“開(kāi)始使用”這樣的按鈕可以進(jìn)入主界面;

2)用戶接著滑動(dòng)下一個(gè)圖片的手勢(shì)而進(jìn)入主界面;

3)用戶在引導(dǎo)界面點(diǎn)擊返回鍵的時(shí)候直接進(jìn)入主界面;


增加“開(kāi)始使用”按鈕方式:

可以定義一個(gè)layout的xml再加載:一個(gè)LinearLayout,里面一個(gè)button。默認(rèn)button是“gone”,

xml如下:

?

?

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/guide_item"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical" ><TextViewandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_weight="5" /><Buttonandroid:id="@+id/start"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="@string/guide_start"android:visibility="gone" ></Button><TextViewandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_weight="1" /></LinearLayout>

?

button上下增加了textview,我是為了控制button在整個(gè)界面的位置。

引導(dǎo)的圖片是其背景即可。

實(shí)現(xiàn)如下:

guide_activity.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.support.v4.view.ViewPagerandroid:id="@+id/guide_view"android:layout_width="fill_parent"android:layout_height="fill_parent" /></LinearLayout>

GuideActivity.java:

/*** 引導(dǎo)界面* @author maria* 2012-07-19*/ package com.maria.test;import java.util.ArrayList; import java.util.List; import com.trunkbow.talker.R; import android.app.Activity; 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.util.DisplayMetrics; import android.view.GestureDetector; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; import android.view.GestureDetector.SimpleOnGestureListener; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.LinearLayout;public class GuideActivity extends Activity {private ViewPager viewPager;private List<View> mImageViews; // 滑動(dòng)的圖片集合private int[] imageResId; // 圖片IDprivate int currentItem = 0; // 當(dāng)前圖片的索引號(hào)private GestureDetector gestureDetector; // 用戶滑動(dòng)/** 記錄當(dāng)前分頁(yè)ID */private int flaggingWidth;// 互動(dòng)翻頁(yè)所需滾動(dòng)的長(zhǎng)度是當(dāng)前屏幕寬度的1/3@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.guide_activity);gestureDetector = new GestureDetector(new GuideViewTouch());// 獲取分辨率DisplayMetrics dm = new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(dm);flaggingWidth = dm.widthPixels / 3;imageResId = new int[] { R.drawable.guide_1, R.drawable.guide_2 };mImageViews = new ArrayList<View>();// 初始化圖片資源LayoutInflater viewInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);// 0View convertView0 = viewInflater.inflate(R.layout.guide_item, null);LinearLayout linearLayout0 = (LinearLayout) convertView0.findViewById(R.id.guide_item);linearLayout0.setBackgroundResource(imageResId[0]);mImageViews.add(linearLayout0);// 1View convertView1 = viewInflater.inflate(R.layout.guide_item, null);LinearLayout linearLayout1 = (LinearLayout) convertView1.findViewById(R.id.guide_item);linearLayout1.setBackgroundResource(imageResId[1]);Button btn = (Button) convertView1.findViewById(R.id.start);btn.setVisibility(View.VISIBLE);btn.setOnClickListener(new OnClickListener() {public void onClick(View v) {// TODO Auto-generated method stubGoToMainActivity();}});mImageViews.add(linearLayout1);viewPager = (ViewPager) findViewById(R.id.guide_view);viewPager.setAdapter(new MyAdapter());// 設(shè)置填充ViewPager頁(yè)面的適配器// 設(shè)置一個(gè)監(jiān)聽(tīng)器,當(dāng)ViewPager中的頁(yè)面改變時(shí)調(diào)用viewPager.setOnPageChangeListener(new MyPageChangeListener());}@Overridepublic boolean dispatchTouchEvent(MotionEvent event) {if (gestureDetector.onTouchEvent(event)) {event.setAction(MotionEvent.ACTION_CANCEL);}return super.dispatchTouchEvent(event);}private class GuideViewTouch extends SimpleOnGestureListener {@Overridepublic boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,float velocityY) {if (currentItem == 1) {if (Math.abs(e1.getX() - e2.getX()) > Math.abs(e1.getY()- e2.getY())&& (e1.getX() - e2.getX() <= (-flaggingWidth) || e1.getX() - e2.getX() >= flaggingWidth)) {if (e1.getX() - e2.getX() >= flaggingWidth) {GoToMainActivity();return true;}}}return false;}}/*** 進(jìn)入主界面*/void GoToMainActivity() {Intent i = new Intent(GuideActivity.this, MainActivivty.class);startActivity(i);finish();}/*** 當(dāng)ViewPager中頁(yè)面的狀態(tài)發(fā)生改變時(shí)調(diào)用* * @author Administrator* */private class MyPageChangeListener implements OnPageChangeListener {/*** This method will be invoked when a new page becomes selected.* position: Position index of the new selected page.*/public void onPageSelected(int position) {currentItem = position;}public void onPageScrollStateChanged(int arg0) {}public void onPageScrolled(int arg0, float arg1, int arg2) {}}/*** 填充ViewPager頁(yè)面的適配器* * @author Administrator* */private class MyAdapter extends PagerAdapter {@Overridepublic int getCount() {return imageResId.length;}@Overridepublic Object instantiateItem(View arg0, int arg1) {((ViewPager) arg0).addView(mImageViews.get(arg1));return mImageViews.get(arg1);}@Overridepublic void destroyItem(View arg0, int arg1, Object arg2) {((ViewPager) arg0).removeView((View) arg2);}@Overridepublic boolean isViewFromObject(View arg0, Object arg1) {return arg0 == arg1;}@Overridepublic void restoreState(Parcelable arg0, ClassLoader arg1) {}@Overridepublic Parcelable saveState() {return null;}@Overridepublic void startUpdate(View arg0) {}@Overridepublic void finishUpdate(View arg0) {}}@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {// TODO Auto-generated method stubif (keyCode == KeyEvent.KEYCODE_BACK) {GoToMainActivity();return false;}return super.onKeyDown(keyCode, event);}}


?/**
* @author 張興業(yè)
* 郵箱:xy-zhang#163.com
* android開(kāi)發(fā)進(jìn)階群:278401545
*
*/

轉(zhuǎn)載于:https://www.cnblogs.com/xyzlmn/archive/2012/07/19/3168108.html

總結(jié)

以上是生活随笔為你收集整理的ViewPager实现引导界面以及进入下一个activity解决办法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。