




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】Android中怎么利用zViewPager实现一个欢迎引导页面
这篇文章给大家介绍Android中怎么利用zViewPager实现一个欢迎引导页面,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。项目结构图四、具体的编码实现1、
布局界面比较简单,加入ViewPager组件,以及底部的引导小点,activity_main.xml:<RelativeLayout
xmlns:android="/apk/res/android"
xmlns:tools="/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
<LinearLayout
android:id="@+id/ll"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="24.0dip"
android:orientation="horizontal">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="true"
android:padding="15.0dip"
android:src="@drawable/point"/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="true"
android:padding="15.0dip"
android:src="@drawable/point"/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="true"
android:padding="15.0dip"
android:src="@drawable/point"/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="true"
android:padding="15.0dip"
android:src="@drawable/point"/>
</LinearLayout>
</RelativeLayout>
2、其中小点的图片用一个selector来控制颜色,point.xml:<?xml
version="1.0"
encoding="UTF-8"?>
<selector
xmlns:android="/apk/res/android">
<item
android:state_enabled="true"
android:drawable="@drawable/point_normal"
/>
<item
android:state_enabled="false"
android:drawable="@drawable/point_select"
/>
</selector>3、ViewPager适配器代码,ViewPagerAdapter.java:package
com.yangyu;
import
java.util.ArrayList;
import
android.support.v4.view.PagerAdapter;
import
android.support.v4.view.ViewPager;
import
android.view.View;
/**
*
@author
yangyu
*
功能描述:ViewPager适配器,用来绑定数据和view
*/
public
class
ViewPagerAdapter
extends
PagerAdapter
{
//界面列表
private
ArrayList<View>
views;
public
ViewPagerAdapter
(ArrayList<View>
views){
this.views
=
views;
}
/**
*
获得当前界面数
*/
@Override
public
int
getCount()
{
if
(views
!=
null)
{
return
views.size();
}
return
0;
}
/**
*
初始化position位置的界面
*/
@Override
public
Object
instantiateItem(View
view,
int
position)
{
((ViewPager)
view).addView(views.get(position),
0);
return
views.get(position);
}
/**
*
判断是否由对象生成界面
*/
@Override
public
boolean
isViewFromObject(View
view,
Object
arg1)
{
return
(view
==
arg1);
}
/**
*
销毁position位置的界面
*/
@Override
public
void
destroyItem(View
view,
int
position,
Object
arg2)
{
((ViewPager)
view).removeView(views.get(position));
}
}
4、主程序入口类,MainActivity.java:package
com.yangyu;
import
java.util.ArrayList;
import
android.app.Activity;
import
android.os.Bundle;
import
android.support.v4.view.ViewPager;
import
android.support.v4.view.ViewPager.OnPageChangeListener;
import
android.view.View;
import
android.view.View.OnClickListener;
import
android.widget.ImageView;
import
android.widget.LinearLayout;
import
com.example.myguideview01.R;
/**
*
@author
yangyu
*
功能描述:主程序入口类
*/
public
class
MainActivity
extends
Activity
implements
OnClickListener,OnPageChangeListener
{
//定义ViewPager对象
private
ViewPager
viewPager;
//定义ViewPager适配器
private
ViewPagerAdapter
vpAdapter;
//定义一个ArrayList来存放View
private
ArrayList<View>
views;
//引导图片资源
private
static
final
int[]
pics
=
{R.drawable.guide1,R.drawable.guide2,R.drawable.guide3,R.drawable.guide4};
//底部小点的图片
private
ImageView[]
points;
//记录当前选中位置
private
int
currentIndex;
@Override
protected
void
onCreate(Bundle
savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
initData();
}
/**
*
初始化组件
*/
private
void
initView(){
//实例化ArrayList对象
views
=
new
ArrayList<View>();
//实例化ViewPager
viewPager
=
(ViewPager)
findViewById(R.id.viewpager);
//实例化ViewPager适配器
vpAdapter
=
new
ViewPagerAdapter(views);
}
/**
*
初始化数据
*/
private
void
initData(){
//定义一个布局并设置参数
LinearLayout.LayoutParams
mParams
=
new
LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.FILL_PARENT);
//初始化引导图片列表
for(int
i=0;
i<pics.length;
i++)
{
ImageView
iv
=
new
ImageView(this);
iv.setLayoutParams(mParams);
iv.setImageResource(pics[i]);
views.add(iv);
}
//设置数据
viewPager.setAdapter(vpAdapter);
//设置监听
viewPager.setOnPageChangeListener(this);
//初始化底部小点
initPoint();
}
/**
*
初始化底部小点
*/
private
void
initPoint(){
LinearLayout
linearLayout
=
(LinearLayout)
findViewById(R.id.ll);
points
=
new
ImageView[pics.length];
//循环取得小点图片
for
(int
i
=
0;
i
<
pics.length;
i++)
{
//得到一个LinearLayout下面的每一个子元素
points[i]
=
(ImageView)
linearLayout.getChildAt(i);
//默认都设为灰色
points[i].setEnabled(true);
//给每个小点设置监听
points[i].setOnClickListener(this);
//设置位置tag,方便取出与当前位置对应
points[i].setTag(i);
}
//设置当面默认的位置
currentIndex
=
0;
//设置为白色,即选中状态
points[currentIndex].setEnabled(false);
}
/**
*
当滑动状态改变时调用
*/
@Override
public
void
onPageScrollStateChanged(int
arg0)
{
}
/**
*
当当前页面被滑动时调用
*/
@Override
public
void
onPageScrolled(int
arg0,
float
arg1,
int
arg2)
{
}
/**
*
当新的页面被选中时调用
*/
@Override
public
void
onPageSelected(int
position)
{
//设置底部小点选中状态
setCurDot(position);
}
/**
*
通过点击事件来切换当前的页面
*/
@Override
public
v
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 出租车营运权承包及管理服务合同
- 文化遗产插画创作委托协议
- 老人皮肤护理课件
- 老人消防安全课件图片
- 老人居家护理课件
- 美术白菜课件儿童
- 机关安全生产
- 安全生产工作督导检查简报
- 消防安全检查通讯
- 因私出国自查情况汇报
- (一模)乌鲁木齐地区2025年高三年级第一次质量英语试卷(含答案)
- GB/T 6822-2024船体防污防锈漆体系
- 社会调查研究与方法-001-国开机考复习资料
- 2024年六西格玛绿带认证考试练习题库(含答案)
- 菏泽学院社会心理学(专升本)复习题
- 实验室改造施工合同
- 2024敬老院护理经理聘任协议
- 人工智能语言与伦理学习通超星期末考试答案章节答案2024年
- 2024年部编版九年级语文上册电子课本(高清版)
- 2024年医学高级职称-结核病学(医学高级)考试近5年真题集锦(频考类试题)带答案
- 新教科版二年级科学下册全册教案
评论
0/150
提交评论