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读取文本节点方法小结
Laravel API资源类怎么用_Laravel API Resource数据转换
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
如何在阿里云通过域名搭建网站?
Laravel怎么生成URL_Laravel路由命名与URL生成函数详解
微信小程序 input输入框控件详解及实例(多种示例)
Laravel安装步骤详细教程_Laravel环境搭建指南
Swift中switch语句区间和元组模式匹配
EditPlus中的正则表达式 实战(1)
怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?
zabbix利用python脚本发送报警邮件的方法
Laravel的.env文件有什么用_Laravel环境变量配置与管理详解
香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化
如何破解联通资金短缺导致的基站建设难题?
如何在云服务器上快速搭建个人网站?
Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践
如何在万网利用已有域名快速建站?
JS中对数组元素进行增删改移的方法总结
如何在橙子建站上传落地页?操作指南详解
如何在建站之星网店版论坛获取技术支持?
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
java中使用zxing批量生成二维码立牌
Laravel Eloquent关联是什么_Laravel模型一对一与一对多关系精讲
C#如何调用原生C++ COM对象详解
JavaScript中的标签模板是什么_它如何扩展字符串功能
php485函数参数是什么意思_php485各参数详细说明【介绍】
PHP 500报错的快速解决方法
Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程
html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】
如何用wdcp快速搭建高效网站?
Laravel如何创建自定义Facades?(详细步骤)
Android 常见的图片加载框架详细介绍
Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】
原生JS获取元素集合的子元素宽度实例
Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程
Python企业级消息系统教程_KafkaRabbitMQ高并发应用
零服务器AI建站解决方案:快速部署与云端平台低成本实践
HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】
PythonWeb开发入门教程_Flask快速构建Web应用
如何快速重置建站主机并恢复默认配置?
Laravel如何使用Blade组件和插槽?(Component代码示例)
Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】
用yum安装MySQLdb模块的步骤方法
LinuxCD持续部署教程_自动发布与回滚机制
头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?
开心动漫网站制作软件下载,十分开心动画为何停播?
PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑

