ViewPager实现漂亮的引导页
发布时间 - 2026-01-11 02:55:07 点击率:次废话就不多说了,直接上效果图和代码
fry.Activity01
package fry;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
import com.example.viewPager.R;
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.view.ViewGroup.LayoutParams;
import android.widget.ImageView;
import android.widget.LinearLayout;
public class Activity01 extends Activity implements OnPageChangeListener,OnClickListener{
private ViewPager viewPager;
private List<View> views;//用来存放放进ViewPager里面的ImageView
private int[] imageID;//
private ImagePagerAdapter adapter;//适配器
private LinearLayout linearLayout;
private int currentPoint;//当前被选中中页面的下标
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity01);
initData();
initView();
}
//初始化view
void initView(){
adapter=new ImagePagerAdapter(views);
viewPager=(ViewPager) findViewById(R.id.viewPager);
viewPager.setAdapter(adapter);
linearLayout=(LinearLayout) findViewById(R.id.linearLayout);
initPoint();
viewPager.setOnPageChangeListener(this);
}
//初始化数据
void initData(){
//将图片的id全部放到imageID集合中
imageID=new int[]{R.drawable.guide1,R.drawable.guide2,R.drawable.guide3,R.drawable.guide4};
views=new ArrayList<View>();
//给iamgeView设置LayoutParams参数
LayoutParams layoutParams=new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
for(int i:imageID){
//不确定1
ImageView imageView=new ImageView(this);
imageView.setImageResource(i);
imageView.setLayoutParams(layoutParams);
views.add(imageView);
}
}
/*
* 初始化页面下方的点
*/
private void initPoint(){
ImageView[] imageView=new ImageView[imageID.length];
for(int i=0;i<linearLayout.getChildCount();i++){
imageView[i]=(ImageView) linearLayout.getChildAt(i);
imageView[i].setImageResource(R.drawable.point_normal);
imageView[i].setOnClickListener(this);
imageView[i].setTag(i);
}
currentPoint=0;
imageView[currentPoint].setImageResource(R.drawable.point_select);
}
/*
* 将页面下方的点全部置为未选中状态
*/
private ImageView[] clearPoint(){
ImageView[] imageView=new ImageView[imageID.length];
for(int i=0;i<linearLayout.getChildCount();i++){
imageView[i]=(ImageView) linearLayout.getChildAt(i);
imageView[i].setImageResource(R.drawable.point_normal);
}
return imageView;
}
@Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
}
/*
* 页面被选中时候执行的方法
* (non-Javadoc)
* @see android.support.v4.view.ViewPager.OnPageChangeListener#onPageSelected(int)
*/
@Override
public void onPageSelected(int position) {
// TODO Auto-generated method stub
ImageView[] imageView= clearPoint();
imageView[position].setImageResource(R.drawable.point_select);
}
//小圆点点击事件
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
int i=(Integer) v.getTag();
viewPager.setCurrentItem(i);
}
}
fry.ImagePagerAdapter
package fry;
import java.util.ArrayList;
import java.util.List;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.view.ViewGroup;
public class ImagePagerAdapter extends PagerAdapter{
private List<View> views;
public ImagePagerAdapter(List<View> views) {
this.views=views;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return this.views.size();
}
/**
* position是在viewPager中显示图片的位置
* 我对应的图片放到对应的位置就好了
* instantiateItem和destroyItem是对应的
* 一个是创建item,一个是销毁item
*/
@Override
public Object instantiateItem(ViewGroup container, int position) {
((ViewPager)container).addView(views.get(position));
return views.get(position);
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
// TODO Auto-generated method stub
return arg0==arg1;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
((ViewPager)container).removeView(views.get(position));
}
}
/viewPager/res/layout/activity01.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" > <android.support.v4.view.ViewPager android:id="@+id/viewPager" android:layout_width="match_parent" android:layout_height="match_parent" > </android.support.v4.view.ViewPager> <LinearLayout android:id="@+id/linearLayout" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_gravity="bottom|center" > <ImageView android:id="@+id/point1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/point_select" android:padding="25dip" /> <ImageView android:id="@+id/point2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/point_normal" android:padding="25dip" /> <ImageView android:id="@+id/point3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/point_normal" android:padding="25dip" /> <ImageView android:id="@+id/point4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/point_normal" android:padding="25dip" /> </LinearLayout> </FrameLayout>
1、多个控件(这里指小圆点)可以用List来一起访问
2、可用动态的控件设置tag来区分控件
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# ViewPager
# 引导页
# Android使用ViewPager实现启动引导页
# Android自定义引导玩转ViewPager的方法详解
# Android开发实战之漂亮的ViewPager引导页
# Android开发实现的ViewPager引导页功能(动态加载指示器)详解
# Android控件ViewPager实现带有动画的引导页
# ViewPager实现带引导小圆点与自动跳转的引导界面
# Android利用ViewPager实现用户引导界面效果的方法
# ViewPager打造轮播图Banner/引导页Guide
# Android使用ViewPager完成app引导页
# ViewPager实现轮播图引导页
# 是在
# 多个
# 说了
# 可以用
# 小圆点
# 不多
# 不确定
# 大家多多
# 就好了
# adapter
# linearLayout
# imageID
# ImagePagerAdapter
# protected
# void
# currentPoint
# Override
# int
# extends
# implements
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
在线制作视频网站免费,都有哪些好的动漫网站?
Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)
Windows10怎样连接蓝牙设备_Windows10蓝牙连接步骤【教程】
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
javascript读取文本节点方法小结
Java类加载基本过程详细介绍
HTML 中动态设置元素 name 属性的正确语法详解
Laravel怎么使用Intervention Image库处理图片上传和缩放
如何在建站之星绑定自定义域名?
Laravel如何生成URL和重定向?(路由助手函数)
Linux后台任务运行方法_nohup与&使用技巧【技巧】
电商网站制作价格怎么算,网上拍卖流程以及规则?
Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例
Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】
如何快速生成橙子建站落地页链接?
如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环
Laravel安装步骤详细教程_Laravel环境搭建指南
Laravel模型事件有哪些_Laravel Model Event生命周期详解
如何注册花生壳免费域名并搭建个人网站?
如何在万网自助建站平台快速创建网站?
Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】
phpredis提高消息队列的实时性方法(推荐)
油猴 教程,油猴搜脚本为什么会网页无法显示?
在线教育网站制作平台,山西立德教育官网?
php做exe能调用系统命令吗_执行cmd指令实现方式【详解】
Python进程池调度策略_任务分发说明【指导】
Laravel如何使用Vite进行前端资源打包?(配置示例)
深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?
jQuery validate插件功能与用法详解
香港服务器网站推广:SEO优化与外贸独立站搭建策略
微信小程序 scroll-view组件实现列表页实例代码
动图在线制作网站有哪些,滑动动图图集怎么做?
Laravel Admin后台管理框架推荐_Laravel快速开发后台工具
如何挑选优质建站一级代理提升网站排名?
Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
如何在VPS电脑上快速搭建网站?
Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程
html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】
如何快速搭建二级域名独立网站?
laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法
高端云建站费用究竟需要多少预算?
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
佛山企业网站制作公司有哪些,沟通100网上服务官网?
详解Android图表 MPAndroidChart折线图
如何用景安虚拟主机手机版绑定域名建站?
Laravel如何操作JSON类型的数据库字段?(Eloquent示例)
Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出
如何用狗爹虚拟主机快速搭建网站?

