android 使用ViewFlow实现左右滑动

Android高级应用源码-ViewFlow,一个滑动效果库.zip 立即下载


是的,你没看错,是ViewFlow,不是ViewPager,也不是ViewFlipper。ViewFlow是一个开源的androidUI库。它提供了三个组件ViewFlow、FlowIndicator和TitleFlowIndicator。它使得由Adapter产生的ViewGroup中的View可以水平滑动。

一、使用ViewFlow库

那么什么时候可以使用这个组件呢?文档上说,当你需要在一系列不确定数目的view中滑动时,可以考虑使用ViewFlow。如果你的view数目确定,你应该使用Fragments或兼容库里的ViewPager。

1、使用ViewFlow

怎么使用呢?首先在你的layout文件中加入:

1
2
3
4
<</CODE>org.taptwo.android.widget.ViewFlow
android:id = "@+id/viewflow"
app:sidebuffer = "5"
/>

其中app:sidebuffer属性是ViewFlow组件自定义的,使用这些属性时,需要增加如下的xml的命名空间:

然后在你的Activity里面添加如下代码用于使用ViewFlow:

1
2
3
4
5
6
7
8
9
10
ViewFlow viewFlow = (ViewFlow)findViewById(R.id.viewflow);
viewFlow.setAdapter(myAdapter);
//设置初始view的位置
//viewFlow.setAdapter(myAdapter, 8);
//监听view切换事件,简单的需求可不监听
viewFlow.setOnViewSwitchListener( new ViewSwitchListener() {
     public void onSwitched(View v, int position){
     // Your code here
     }
});

当然,你也可以使用该库中的FlowIndicator为你在多个view中切换时提供一个指示器,目前该库已经实现了两种指示器:一种是圆点指示器FlowIndicator;另一种是标题指示器TitleFlowIndicator。

2、使用圆点指示器

圆点指示器可以这样使用:
先在layout中这样定义

1
2
3
4
<</CODE>org.taptwo.android.widget.CircleFlowIndicator
android:padding = "10dip" android:layout_height = "wrap_content"
android:layout_width = "wrap_content" android:id = "@+id/viewflowindic"
android:background = "#00000000" />

然后在activity中调用它

1
2
3
CircleFlowIndicator indic =(CircleFlowIndicator)
                      findViewById(R.id.viewflowindic);
viewFlow.setFlowIndicator(indic);

圆点指示器还支持activeColor、inactiveColor、activeType(填充或描边)、inactiveType(填充或描边)、fadeOut(设置圆点自动隐藏的秒数,若为0则不会自动隐藏)、radius(圆点的半径)等。

3、使用标题指示器

标题指示器也是先layout里定义:

1
2
3
4
5
6
7
8
9
10
11
<</CODE>org.taptwo.android.widget.TitleFlowIndicator
android:id = "@+id/viewflowindic"
         android:layout_height = "wrap_content"
android:layout_width = "fill_parent"
app:footerLineHeight = "2dp"
app:footerTriangleHeight = "10dp"
         app:textColor = "#FFFFFFFF" app:selectedColor = "#FFFFC445"
app:footerColor = "#FFFFC445" app:titlePadding = "10dp"
         app:textSize = "11dp" app:selectedSize = "12dp"
android:layout_marginTop = "10dip"
app:clipPadding = "5dp" />

然后在activity中调用它:

1
2
3
4
TitleFlowIndicator indicator =(TitleFlowIndicator)
                           findViewById(R.id.viewflowindic);
indicator.setTitleProvider(myTitleProvider);
viewFlow.setFlowIndicator(indicator);

OK,以上就是ViewFlow库提供三大组件及其用法(来自其文档),当然你也可以把该组件库打包成jar调用。

要注意的是,如果你使用的androidsdk版本是android2.2以下,最好在activity中加上如下方法

1
2
3
4
5
@Override
  public void onConfigurationChanged(ConfigurationnewConfig) {
      super .onConfigurationChanged(newConfig);
      viewFlow.onConfigurationChanged(newConfig);
  }
二、实现了自动播放和循环的ViewFlow

网友灵台斜月对ViewFlow实现了改进,增加了自动播放功能和循环功能。这里可以下载工程代码。

滑动循环功能通过在adapter的getcount方法要返回Integer.Max_value。然后在getview方法中,由于position不断递增,可以取余数。并调用viewflow.setSelection(3*图片数)来实现循环。

自动播放是通过如下代码实现的:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
//通过延迟消息实现自动播放,使用时通过调用该方法来启动自动播放功能
  public void startAutoFlowTimer(){
            handler= new Handler(){
            @Override
             public void handleMessage(Message msg) {
                    snapToScreen((mCurrentScreen+ 1 )%getChildCount());
                     Messagemessage = handler.obtainMessage( 0 );
                    sendMessageDelayed(message,timeSpan);
             }
            };
 
            Messagemessage = handler.obtainMessage( 0 );
            handler.sendMessageDelayed(message,timeSpan);
        }

另外,原ViewFlow自带的例子在这里,直接down的代码无法使用,这个代码可以直接导入。里面有4个例子,分别展示了带圆点指示器的ViewFlow、带标题指示器的ViewFlow、view结构不同的ViewFlow及异步加载view的ViewFlow。还可以学习下如何设置自定义组件的属性。

ADRC自抗扰PD+ESO控制(博途SCL源代码) 文章浏览阅读119次。线性自抗扰控制(LADRC)系统算法框图-优快云博客文章浏览阅读335次。NLADRC自抗扰控制从Simulink仿真到PLC控制实现_自抗扰控制器 simulink仿真-优快云博客本文介绍了如何将ADRC自抗扰控制算法从Simulink仿真应用到PLC控制中,包括Simulink框图、TD微分器模型、MATLAB函数的使用、SCL控制代码,以及非线性状态误差反馈控制率的实现。ADRC自抗扰PD+ESO控制(CODESYS测试+完整ST代码)-优快云博客。 阅读详情

相关推荐

告别调参烦恼:用Simulink手把手实现自适应模糊PID温度控制(附模型下载)

本文详细介绍了如何使用Simulink实现自适应模糊PID温度控制,解决传统PID调参难题。通过模糊推理引擎动态调整PID参数,系统能自动适应不同工况,显著提升控制精度和响应速度。文章包含完整的建模步骤、参数优化技巧和工业应用扩展,并附赠可下载模型,帮助工程师快速掌握这一智能控制技术。

weixin_30872499的博客 153

Android UI开发第十三篇——android-viewflow

在论坛里,经常看到有人问如何实现UC或墨迹天气那样的拖动效果。其实大部分的实现都是参考了Launcher里的Workspace这个类。刚好看到有个开源项目也是实现了这种功能,地址在http://code.google.com/p/andro-views/,希望对有需要的人有所帮助,做出很cool的应用出来。View Flow for AndroidViewFlow is an Android UI...

weixin_30314813的博客 189

C# 上位机开发完全指南:从零开始构建工业控制系统

摘要: 本文详细介绍了使用C#开发工业自动化上位机系统的关键技术和方法。上位机作为工业控制的核心枢纽,负责与PLC、传感器等设备通信,实现数据采集、监控和控制。开发基于C#的上位机需掌握Windows Forms/WPF界面设计、Modbus/OPC等通信协议,以及SQL数据库存储。文章分步讲解了环境搭建、界面设计、设备通信(以Modbus和TCP/IP为例)、数据存储与展示等关键环节,并强调多线程优化与异常处理的重要性。通过C#和.NET技术栈,开发者能够构建高效稳定的工业控制系统,未来可扩展至云平台和物

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1018

Android ViewFlow

Android ViewFlow 项目简介 Android ViewFlow 是一个强大的 Android UI 组件,用于创建水平滚动的视图流(ViewFlow)。它允许您轻松地将多个视图组织成一个无限循环的滚动布局,为用户提供流畅、直观的交互体验。 功能与用途 创建水平滚动视图: Android ViewFlow 可以帮助开发者在应用中实现类似 Google Play 商店的横向滑动效果,展...

gitblog_00033的博客 540

耶鲁大学《博弈论》课程——逆向归纳

耶鲁大学《博弈论》课程——逆向归纳

ZYLer_的博客 7873

NFT图片批量合成及稀有度计算工具

一、制作背景 -当前NFT作品制作的大多方式都是使用部件拼接的形式,然后从大量的可能性结果取优; 二、解决问题 拼接合成的组合数量十分巨大,手工合成费时费力; 合成中对各个部件的使用次数不容易控制,部位出现的概率对作品的稀有度及评分影响较大; 对于生成的作品各个部位的信息(包括来源和使用率)统计繁琐,不利于对作品的介绍中体现; 三、程序功能介绍 1、功能自定义部位稀有度批量合成NFT作品 步骤一:创建各个合成部件文件夹,将图片放到文件夹内 步骤二:软件上设置各个部件对于的图片文件夹及出现的概率 步骤二

Keeping111的博客 4638

android viewflow 自动播放,【移动开发】Android中三种超实用的滑屏方式汇总(ViewPager、ViewFlipper、ViewFlow)...

现如今主流的Android应用中,都少不了左右滑动滚屏这项功能,(貌似现在好多人使用智能机都习惯性的有事没事的左右滑屏,也不知道在干什么。。。嘿嘿),由于前段时间项目的需要,所以也对其研究了一下,总的来说滑屏实现有三种方式:(至于其他的实现方式目前后还没碰到。。。)1.ViewPager2.ViewFlipper 3.ViewFlow一.ViewPager根据继承关系我们可以看出,ViewPa...

weixin_35854667的博客 384

R_柱状图(加误差线,显著性差异)

先放最终效果图 结果图 # bar_plot 2021/01/19 # 导入所需的包 library(ggplot2) library(ggthemr) library(ggsignif) library(tidyverse) library(dplyr) library(ggpubr) library(devEMF) # 导入并处理数据,需要两张表,一个是原始汇总表格,另外一些是每一...

wt141643的博客 2万+

Android实现View的任意拖动

安卓实现View的拖曳有几种方法,都不外乎改变View的坐标,并且重绘,于是,只要能够改变之就可以。 可以自定义View,重写OnTouchEvent(MotionEvent event),可以在Activity 的onTouch()方法中监听手指在屏幕上的位置变化实现,也可以设置View的OnTouch监听。 自定义View的方式: import android

Blog for 明月依希 1万+

STM32串口接收避坑指南:为什么你的USART_IT_IDLE中断不触发?附完整调试流程

本文深入解析STM32串口接收中断机制,特别是USART_IT_IDLE中断不触发的常见原因及解决方案。通过详细分析中断标志清除顺序、波特率配置、硬件连接等关键因素,并提供完整的调试流程和代码示例,帮助开发者快速定位并解决串口通信问题。

weixin_42519985的博客 347

android 使用ViewFlow实现图片带焦点左右滑动(定时滑动)

1、导入相关类库:       CircleFlowIndicator.class(焦点)、FlowIndicator.class、ViewFlow.class  (资源包已经集成) 2、自定义适配器:ImageAdapter.class /* * 数据装载类 */ public class ImageAdapter extends BaseAdapter { private Lay

ICQ我的应用我做主 2472

YOLO26改进策略【YOLO和Mamba】| MLLA:Mamba-Like Linear Attention,融合Mamba设计优势的注意力机制

本文记录的是利用模块优化的目标检测网络模型。模块具有独特优势。它不同于传统模块,能同时兼顾局部特征高效建模与长距离交互学习。常见模块要么在局部特征处理上有优势但长距离交互能力弱,要么反之,而模块克服了此问题。它融合了Mamba模型和线性注意力机制的优势,通过独特的结构设计,能够在保持计算效率的同时,精准地建模局部特征并学习长距离交互信息。本文将其用于的模型改进和二次创新,能够更加关注图像中的重要特征区域,抑制背景等无关信息的干扰,从而突出目标物体的关键特征。Demystify Mamba in Vision

Limiiiing的博客 214

Android中实现整个视图切换的左右滑动效果

Android中提供了一个Gallary,可以实现图片或者文本的左右滑动效果。 如何让整个视图都能实现左右滑动,达到类似于Gallary的效果呢?可以直接用一个开源的ViewFlow来实现。    项目地址:https://github.com/pakerfeldt/a

::: 移动互联网时代开发者 ::: 6565

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

android ViewPager,ViewFlipper,ViewFlow三种实现图片轮播方案介绍

开篇         首页只是作为ViewPager,ViewFlipper,ViewFlow的入口,提供三个Button进行跳转。                 1. ViewPager         先看看官方文档怎么介绍ViewPager的:http://developer.android.com/reference/android/support/v4/view/ViewP

我的专栏 5072

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

上一篇: Fragment不响应onActivityResult回调
下一篇: 获取Android控件的宽和高
llyofdream
博客等级 码龄16年 74粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值