




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】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至2030布艺床行业风险投资态势及投融资策略指引报告
- 东博高职考数学试卷
- 二年级上册青岛数学试卷
- 家用美容仪器质量检测方法考核试卷
- 德阳模拟高三数学试卷
- 二升三的数学试卷
- 高考文科模拟卷数学试卷
- 二十年前初中数学试卷
- 2024年医学高级职称-结核病学(医学高级)考试近5年真题集锦(频考类试题)带答案
- 新教科版二年级科学下册全册教案
- 多模态导航融合
- 湖南省长沙市平高教育集团六校2023-2024学年高二下学期期末联考+化学试卷(含答案)
- 【8物(沪科版)】合肥市第四十五中学2023-2024学年八年级下学期期末物理试题
- 区域代理商合同模板
- 外科学课件换药及拆线
- DZ/T 0462.8-2023 矿产资源“三率”指标要求 第8部分:硫铁矿、磷、硼、天然碱、钠硝石(正式版)
- 《车位租赁协议》标准版可打印
- JT-T 1495-2024 公路水运危险性较大工程专项施工方案编制审查规程
- 果农指南:释迦果病虫害防治手册
评论
0/150
提交评论