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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android中界面滑动延伸,android中ViewPager详解--视图滑动、界面卡等效果 (三)

發布時間:2024/9/19 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android中界面滑动延伸,android中ViewPager详解--视图滑动、界面卡等效果 (三) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

GuideActivity.java引導界面:

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;

import?android.widget.LinearLayout;

import?cn.eoe.leigo.splash.adapter.ViewPagerAdapter;

/**

*

*

*/

public?class?GuideActivity?extends?Activity?implements?OnPageChangeListener?{

private?ViewPager?vp;

private?ViewPagerAdapter?vpAdapter;

private?List?views;

//?底部小點圖片

private?ImageView[]?dots;

//?記錄當前選中位置

private?int?currentIndex;

@Override

protected?void?onCreate(Bundle?savedInstanceState)?{

super.onCreate(savedInstanceState);

setContentView(R.layout.guide);

//?初始化頁面

initViews();

//?初始化底部小點

initDots();

}

private?void?initViews()?{

LayoutInflater?inflater?=?LayoutInflater.from(this);

views?=?new?ArrayList();

//?初始化引導圖片列表

views.add(inflater.inflate(R.layout.what_new_one,?null));

views.add(inflater.inflate(R.layout.what_new_two,?null));

views.add(inflater.inflate(R.layout.what_new_three,?null));

views.add(inflater.inflate(R.layout.what_new_four,?null));

//?初始化Adapter

vpAdapter?=?new?ViewPagerAdapter(views,?this);

vp?=?(ViewPager)?findViewById(R.id.viewpager);

vp.setAdapter(vpAdapter);

//?綁定回調

vp.setOnPageChangeListener(this);

}

private?void?initDots()?{

LinearLayout?ll?=?(LinearLayout)?findViewById(R.id.ll);

dots?=?new?ImageView[views.size()];

//?循環取得小點圖片

for?(int?i?=?0;?i?

dots[i]?=?(ImageView)?ll.getChildAt(i);

dots[i].setEnabled(true);//?都設為灰色

}

currentIndex?=?0;

dots[currentIndex].setEnabled(false);//?設置為白色,即選中狀態

}

private?void?setCurrentDot(int?position)?{

if?(position??views.size()?-?1

||?currentIndex?==?position)?{

return;

}

dots[position].setEnabled(false);

dots[currentIndex].setEnabled(true);

currentIndex?=?position;

}

//?當滑動狀態改變時調用

@Override

public?void?onPageScrollStateChanged(int?arg0)?{

}

//?當當前頁面被滑動時調用

@Override

public?void?onPageScrolled(int?arg0,?float?arg1,?int?arg2)?{

}

//?當新的頁面被選中時調用

@Override

public?void?onPageSelected(int?arg0)?{

//?設置底部小點選中狀態

setCurrentDot(arg0);

}

}

ViewPagerAdapter.java。ViewPager的適配器:

import?java.util.List;

import?android.app.Activity;

import?android.content.Context;

import?android.content.Intent;

import?android.content.SharedPreferences;

import?android.content.SharedPreferences.Editor;

import?android.os.Parcelable;

import?android.support.v4.view.PagerAdapter;

import?android.support.v4.view.ViewPager;

import?android.view.View;

import?android.view.View.OnClickListener;

import?android.widget.ImageView;

import?cn.eoe.leigo.splash.MainActivity;

import?cn.eoe.leigo.splash.R;

/**

*/

public?class?ViewPagerAdapter?extends?PagerAdapter?{

//?界面列表

private?List?views;

private?Activity?activity;

private?static?final?String?SHAREDPREFERENCES_NAME?=?"first_pref";

public?ViewPagerAdapter(List?views,?Activity?activity)?{

this.views?=?views;

this.activity?=?activity;

}

//?銷毀arg1位置的界面

@Override

public?void?destroyItem(View?arg0,?int?arg1,?Object?arg2)?{

((ViewPager)?arg0).removeView(views.get(arg1));

}

@Override

public?void?finishUpdate(View?arg0)?{

}

//?獲得當前界面數

@Override

public?int?getCount()?{

if?(views?!=?null)?{

return?views.size();

}

return?0;

}

//?初始化arg1位置的界面

@Override

public?Object?instantiateItem(View?arg0,?int?arg1)?{

((ViewPager)?arg0).addView(views.get(arg1),?0);

if?(arg1?==?views.size()?-?1)?{

ImageView?mStartWeiboImageButton?=?(ImageView)?arg0

.findViewById(R.id.iv_start_weibo);

mStartWeiboImageButton.setOnClickListener(new?OnClickListener()?{

@Override

public?void?onClick(View?v)?{

//?設置已經引導

setGuided();

goHome();

}

});

}

return?views.get(arg1);

}

private?void?goHome()?{

//?跳轉

Intent?intent?=?new?Intent(activity,?MainActivity.class);

activity.startActivity(intent);

activity.finish();

}

/**

*

*?method?desc:設置已經引導過了,下次啟動不用再次引導

*/

private?void?setGuided()?{

SharedPreferences?preferences?=?activity.getSharedPreferences(

SHAREDPREFERENCES_NAME,?Context.MODE_PRIVATE);

Editor?editor?=?preferences.edit();

//?存入數據

editor.putBoolean("isFirstIn",?false);

//?提交修改

editor.commit();

}

//?判斷是否由對象生成界面

@Override

public?boolean?isViewFromObject(View?arg0,?Object?arg1)?{

return?(arg0?==?arg1);

}

@Override

public?void?restoreState(Parcelable?arg0,?ClassLoader?arg1)?{

}

@Override

public?Parcelable?saveState()?{

return?null;

}

@Override

public?void?startUpdate(View?arg0)?{

}

}

至于MainActivity隨便了。

效果如下:

所以總結一下,我們可以使用ViewPager做什么:

1.程序使用導航,外加底部圓點的效果,這個在微信示例里介紹了

2.頁卡滑動,加上菜單的效果,不管是之前的支持手勢也支持底部圖標點擊的微信,還是今天的微博。

總結

以上是生活随笔為你收集整理的android中界面滑动延伸,android中ViewPager详解--视图滑动、界面卡等效果 (三)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。