Android 实现局部图片滑动指引效果
发布时间 - 2026-01-10 22:45:04 点击率:次Android 实现局部图片滑动指引效果

而ViewPager的事件监听器代码如下:
// 滑动页面更改事件监听器
private class ImagePageChangeListener implements OnPageChangeListener {
@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
}
@Override
public void onPageSelected(int index) {
pageIndex = index;
slideLayout.setPageIndex(index);
tvSlideTitle.setText(parser.getSlideTitles()[index]);
for (int i = 0; i < imageCircleViews.length; i++) {
imageCircleViews[index].setBackgroundResource(R.drawable.dot_selected);
if (index != i) {
imageCircleViews[i].setBackgroundResource(R.drawable.dot_none);
}
}
}
}
事件监听器中主要在回调函数onPageSelected(int index)中变换标题和圆点图片。
由于滑动区域下方的内容是不变的,也就是不滑动的,正如在我在上面提到的,内容可能会超出屏幕的范围,所以我们需要使用ScrollView以便内容过多的时候显示滚动条。可能一部分朋友会想到,要显示滚动条我也知道使用ScrollView。我想在这里说的是,这里即有ViewPager控件,也有ScrollView,如果两个View单独使用不会有什么问题。然而不幸的是,两个一结合使用就出现了问题。什么问题呢?就是在滑动图片时出现反弹的现象,就是在滑动时很难滑动,我滑动时感觉很吃力,而且图片就是滑动不过去,这个就是两个View之间的冲突,因为两个View都是滑动的View,都会计算相应的位置和判断相应的距离。
我们如何来解决这个冲突呢?这里我们需要重写ScrollView的onInterceptTouchEvent()回调函数。需要在程序里新加一个ScrollViewExtend类并继承自ScrollView,下面是其代码:
package com.image.indicator.control;
import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.ScrollView;
/**
* 能够兼容ViewPager的ScrollView
* @Description: 解决了ViewPager在ScrollView中的滑动反弹问题
* @File: ViewPagerCompatScrollView.java
* @Package com.image.indicator.control
* @Author Hanyonglu
* @Date 2012-6-18 下午01:34:50
* @Version V1.0
*/
public class ScrollViewExtend extends ScrollView {
// 滑动距离及坐标
private float xDistance, yDistance, xLast, yLast;
public ScrollViewExtend(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
switch (ev.getAction()) {
case MotionEvent.ACTION_DOWN:
xDistance = yDistance = 0f;
xLast = ev.getX();
yLast = ev.getY();
break;
case MotionEvent.ACTION_MOVE:
final float curX = ev.getX();
final float curY = ev.getY();
xDistance += Math.abs(curX - xLast);
yDistance += Math.abs(curY - yLast);
xLast = curX;
yLast = curY;
if(xDistance > yDistance){
return false;
}
}
return super.onInterceptTouchEvent(ev);
}
}
感谢阅读,希望能帮助到大家,谢谢大家对 本站的支持!
# Android
# 实现局部图片滑动指引效果
# 图片滑动指引效果
# Android自定义ImageView实现在图片上添加图层效果
# Android中从图库中选取图片实例详解
# Android ViewPager实现图片轮翻效果
# Android编程实现支持拖动改变位置的图片中叠加文字功能示例
# Android中超大图片无法显示的问题解决
# Android自定义组件获取本地图片和相机拍照图片
# android自定义ImageView仿图片上传示例
# Android ViewPager加载图片效果
# Android百度地图应用之图层展示
# Android编程实现图片背景渐变切换与图层叠加效果
# 的是
# 回调
# 滚动条
# 都是
# 有什么
# 我也
# 我想
# 也有
# 在我
# 就是在
# 很难
# 在这
# 希望能
# 重写
# 在上面
# 谢谢大家
# 什么问题
# 里说
# 出现了
# 圆点
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
制作旅游网站html,怎样注册旅游网站?
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
Laravel如何实现密码重置功能_Laravel密码找回与重置流程
android nfc常用标签读取总结
安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出
英语简历制作免费网站推荐,如何将简历翻译成英文?
为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】
如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】
如何在阿里云虚拟服务器快速搭建网站?
Laravel项目怎么部署到Linux_Laravel Nginx配置详解
大学网站设计制作软件有哪些,如何将网站制作成自己app?
Laravel Debugbar怎么安装_Laravel调试工具栏配置指南
Laravel怎么解决跨域问题_Laravel配置CORS跨域访问
Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程
HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】
*服务器网站为何频现安全漏洞?
JS实现鼠标移上去显示图片或微信二维码
如何彻底删除建站之星生成的Banner?
百度浏览器网页无法复制文字怎么办 百度浏览器复制修复
Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】
Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】
郑州企业网站制作公司,郑州招聘网站有哪些?
Laravel怎么自定义错误页面_Laravel修改404和500页面模板
Laravel怎么使用Markdown渲染文档_Laravel将Markdown内容转HTML页面展示【实战】
html如何与html链接_实现多个HTML页面互相链接【互相】
怎么用AI帮你设计一套个性化的手机App图标?
Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】
如何确保西部建站助手FTP传输的安全性?
Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境
如何有效防御Web建站篡改攻击?
iOS发送验证码倒计时应用
jquery插件bootstrapValidator表单验证详解
如何用美橙互联一键搭建多站合一网站?
宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法
Android okhttputils现在进度显示实例代码
昵图网官网入口 昵图网素材平台官方入口
Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】
高端企业智能建站程序:SEO优化与响应式模板定制开发
长沙做网站要多少钱,长沙国安网络怎么样?
Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】
如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框
Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤
Python面向对象测试方法_mock解析【教程】
教学论文网站制作软件有哪些,写论文用什么软件
?
如何在腾讯云免费申请建站?
Python自然语言搜索引擎项目教程_倒排索引查询优化案例
Laravel Admin后台管理框架推荐_Laravel快速开发后台工具
Laravel怎么调用外部API_Laravel Http Client客户端使用
Laravel如何自定义分页视图?(Pagination示例)
JavaScript模板引擎Template.js使用详解

