Android实现基于ViewPager的无限循环自动播放带指示器的轮播图CarouselFigureView控件
作者:liujinhua1992 发布时间:2022-06-25 19:04:23
标签:viewpager,指示器,播放
最近用到需要无限轮播自动播放的轮播轮播图,网上感觉都有这样那样的问题,于是自己写了一个通用的控件CarouselFigureView。
特点:
1.可以轮播view可以自己定义,不一定是要是ImageView2.指示器默认显示,但是可以隐藏3.可以设置指示器的颜色、间距、大小 4.有基础的可以自己修改代码改变指示器位置,这个应该不难5.可以自己开启和关闭自动轮播,开启轮播的时候可以设置轮播时间间隔,默认3000毫秒
我们先来看看效果图:
然后来看看使用代码
xml代码
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context="com.winston.base.myviewpager.MainActivity">
<com.winston.base.myviewpager.carousefigure.CarouselFigureView
android:id="@+id/carouselFigureView"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</FrameLayout>
activity代码
<pre name="code" class="html">package com.winston.base.myviewpager;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ImageView;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.winston.base.myviewpager.carousefigure.CarouseFigureBaseAdapter;
import com.winston.base.myviewpager.carousefigure.CarouselFigureView;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private List<String> urls = new ArrayList<>();
private CarouselFigureView carouselFigureView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ImageLoader.getInstance().init(ImageLoaderConfiguration.createDefault(this));
urls.add("http://h.hiphotos.baidu.com/image/h%3D300/sign=c9dd5806ab6eddc439e7b2fb09dab6a2/377adab44aed2e734cfdf0cf8101a18b87d6fa39.jpg");
urls.add("http://e.hiphotos.baidu.com/image/h%3D300/sign=7aac96eab0003af352bada60052bc619/b58f8c5494eef01f76566e26e6fe9925bd317d96.jpg");
urls.add("http://b.hiphotos.baidu.com/image/h%3D300/sign=c5d06d0ea5cc7cd9e52d32d909002104/32fa828ba61ea8d3946002e7910a304e241f5896.jpg");
urls.add("http://f.hiphotos.baidu.com/image/h%3D360/sign=76a2918f0bb30f242a9aea05f894d192/a8014c086e061d9507500dd67ff40ad163d9cacd.jpg");
setContentView(R.layout.activity_main);
carouselFigureView = (CarouselFigureView)findViewById(R.id.carouselFigureView);
carouselFigureView.setAdapter(new CarouseFigureBaseAdapter(){
<pre name="code" class="html"><span style="white-space:pre"> </span>//这里返回要轮播的view的数量
<span style="white-space:pre"> </span> @Override
public int getSize() {
return urls.size();
}
<span style="white-space:pre"> </span>//这里是关键,根据position返回对应的view(就是对于的轮播图)
@Override
public View getView(int position) {
ImageView view = new ImageView(MainActivity.this);
ImageLoader.getInstance().displayImage(urls.get(position),view);
return view;
}
});
//设置指示点的大小,默认8 单位dp
carouselFigureView.setPointSize(16);
//设置指示点的颜色,默认选中红色 ,其他灰色
// carouselFigureView.setPointColor(Color.BLUE,Color.BLACK);
//设置指示点离底部具距离,默认40 单位dp
// carouselFigureView.setIndicatorMarginBottom(260);
//设置指示点间距,默认20 单位dp
carouselFigureView.setPointSpacing(40);
//设置是否显示指示器,默认显示
// carouselFigureView.isShowIndicator(false);
}
@Override
protected void onResume() {
super.onResume();
//开始轮播
carouselFigureView.start();
}
@Override
protected void onPause() {
super.onPause();
//停止轮播
carouselFigureView.stop();
}
}
以上所述是小编给大家介绍的Android实现基于ViewPager的无限循环自动播放带指示器的轮播图CarouselFigureView控件网站的支持!
来源:http://blog.csdn.net/l448288137/article/details/50339811
![](https://www.aspxhome.com/images/zang.png)
![](https://www.aspxhome.com/images/jiucuo.png)
猜你喜欢
- 前言一般情况下,多数移动开发者使用的是数据线连接电脑,进行各种移动设备的调试,更有胜者,非常迷恋模拟器,模拟器它好不好,答案是好,因为直接运
- 方法一:<uses-permission android:name="android.permission.WAKE_LOC
- 抽象方法与虚方法的区别先说两者最大的区别:抽象方法是需要子类去实现的。虚方法是已经实现了的,可以被子类覆盖,也可以不覆盖,取决于需求。因为抽
- 需要设置允许不安全代码.....项目->属性->生成->允许不安全代码/// <summary> &
- 本文实例为大家分享了java后台批量下载文件并压缩成zip下载的具体代码,供大家参考,具体内容如下因项目需要,将服务器上的图片文件压缩打包z
- 实践过程效果代码public partial class Form1 : Form{ public Form1()
- 本文实例讲述了java实现的冒泡排序算法。分享给大家供大家参考,具体如下:public class PaoPaixu { pub
- 很多朋友问小编springboot项目中怎么集成Swagger呢?swagger世界上最好的api管理工具前言我们为什么要使用api管理工具
- 进程进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。程序是指
- 前言Spring内置的工具类里,最喜欢用的就是文件读写这一部分,虽然原生的写法也没几句,但是就是懒,不想循环、判断什么的,直接调用现成的静态
- 一.搭建1.前端npm installnpm run serve2.后端老生常谈的配置,修改mysql与redis即可。二.业务功能介绍功能
- Springboot导入本地jar后 打包依赖无法加入1.本地jar包2.pom文件添加自定义jar包导入<!--自定义jar--&g
- 在我们应用程序的业务逻辑中,经常会碰到参数校验的情况,手动的在代码层上面进行校验就会带来很不好的体验,阅读、维护的成本会大大增加,造成冗余。
- 本文实例讲述了WinForm中实现picturebox自适应图片大小的方法。分享给大家供大家参考,具体如下:picturebox控件共有两种
- 实例如下所示:public class MainActivity {private static final String fileName
- 引言大家应该都知道,对Excel表格设置分页对我们预览、打印文档时是很方便的,特别是一些包含很多复杂数据的、不规则的表格,为保证打印时每一页
- 介绍众所周知,AOP(面向切面编程)是Spring框架的特色功能之一。通过设置横切关注点(cross cutting concerns),A
- 在J2EE项目的开发中,不管是对底层的数据库操作过程,还是业务层的处理过程,还是控制层的处理过程,都不可避免会遇到各种可预知的、不可预知的异
- 一直在使用Mybatis这个ORM框架,都是使用mybatis里的一些常用功能。今天在项目开发中有个业务是需要限制各个用户对某些表里的字段查
- 目录1、二分查找算法思想2、二分查找图示说明3、二分查找优缺点3、java代码实现3.1 使用递归实现3.1 不使用递归实现(while循环