banner 图片自动轮播
别人的网址 http://blog.csdn.net/ysc332606387/article/details/78293046?locationNum=3&fps=1
Banner是一个框架,此框架是用于实现在Android中,ViewPager的图片无限轮播功能。
在使用Banner框架时我们需要添加它的远程依赖:compile ‘com.youth.banner:banner:1.4.9’
compile 'com.youth.banner:banner:1.4.9'
- 1
1、添加依赖
(1)、点击代码编辑页面右边的Grable;然后选择要添加远程依赖的项目右键选择第一项(如下图)
(2)、点击完成后会跳到下图编辑页面,在相应位置添加Banner的远程依赖的代码
(3)、添加完后点击下图标记的图标同步一下
2、在xml布局文件里引用Banner框架
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"android:layout_height="match_parent" tools:context="com.example.demo2.MainActivity"><com.youth.banner.Banner
android:id="@+id/ban"android:layout_width="match_parent"android:layout_height="270dp"></com.youth.banner.Banner></RelativeLayout>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
3、在MainActivity里的具体使用方法
——–Banner框架的使用,1、初始化一个ImageLoder 2、图片路径组成的集合 3、开启轮播————-
package com.example.demo2;import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;import com.example.demo2.Bean.Bean;
import com.example.demo2.Util.MyTask;
import com.google.gson.Gson;
import com.youth.banner.Banner;import java.util.ArrayList;
import java.util.List;public class MainActivity extends AppCompatActivity {//http://api.expoon.com/AppNews/getNewsList/type/1/p/1List<Bean.DataBean> list=new ArrayList<>();//图片路径集合List<String> list1=new ArrayList<>();private Banner banner;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//加载布局setContentView(R.layout.activity_main);//找控件banner = (Banner) findViewById(R.id.ban);//利用Util包请求数据MyTask myTask=new MyTask(new MyTask.Icallbacks() {@Overridepublic void updateUiByjson(String jsonstr) {Gson gson=new Gson();Bean bean = gson.fromJson(jsonstr, Bean.class);list=bean.getData();Log.i("nxx",list.toString());//将请求到的全部数据中的图片路径通过遍历数组添加到存储图片路径的集合for(int i=0;i<list.size();i++){String url=list.get(i).getPic_url();list1.add(url);}//测试是否添加成功Log.i("nxx",list1.toString());//为Banner设置参数(LmageLoader对象)banner.setImageLoader(new MyImageLoader());//为Banner设置实现轮播的图片路径的集合banner.setImages(list1);//开启轮播banner.start();}});myTask.execute("http://api.expoon.com/AppNews/getNewsList/type/1/p/1");}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
4、ImageLoder类的使用(直接复制即可)
(1)、用于初始化ImageLoder
package com.example.demo2;import android.app.Application;
import android.graphics.Bitmap;import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiscCache;
import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
import com.nostra13.universalimageloader.cache.memory.impl.LruMemoryCache;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;import java.io.File;/*** author:Created by WangZhiQiang on 2017/10/18.*/public class MApp extends Application {@Overridepublic void onCreate() {super.onCreate();/*ImageLoaderConfiguration imageLoaderConfiguration = new ImageLoaderConfiguration.Builder(this).build();ImageLoader.getInstance().init(imageLoaderConfiguration);*///storage/sdcard/data/<package>/cache//sd/mycache/File cacheDir=this.getExternalCacheDir();//自定义缓存路径ImageLoaderConfiguration configuration=new ImageLoaderConfiguration.Builder(this).memoryCache(new LruMemoryCache(2 * 1024 * 1024))//设置内存缓存区大小.memoryCacheSize(10 * 1024 * 1024)//设置缓存区大小.memoryCacheExtraOptions(520,520)//缓存图片最大的宽度与高度 px.diskCacheSize(50*1024*1024)//设置sd卡缓存的空间大小.diskCacheFileNameGenerator(new Md5FileNameGenerator())//sd卡缓存图片的命名 使用md5加密方式.diskCache(new UnlimitedDiscCache(cacheDir))//自定义sd卡的缓存路径.diskCacheFileCount(100)//缓存文件的最大数量.writeDebugLogs()//写入日志.threadPoolSize(3)//线程池.build();//对imageLoader进行初使化ImageLoader.getInstance().init(configuration);}public final static DisplayImageOptions getDefaultDisplayOption() {DisplayImageOptions options = new DisplayImageOptions.Builder().cacheInMemory(true)//进行内存缓存.cacheOnDisk(true)//进行sd卡缓存.showImageOnLoading(R.drawable.ic_stub) // 设置正在下载中的图片.showImageForEmptyUri(R.drawable.ic_empty) //没有请求地址时.showImageOnFail(R.drawable.ic_error)//下载错误时.bitmapConfig(Bitmap.Config.RGB_565).build();//设置图片质量build(); // 创建配置过得DisplayImageOption对象return options;}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
(2)、用于Banner轮播使用的ImageLoder
package com.example.demo2;import android.content.Context;
import android.widget.ImageView;import com.youth.banner.loader.ImageLoader;//这个包需要自己写/*** author:Created by WangZhiQiang on 2017/10/18.*/public class MyImageLoader extends ImageLoader {//此方法用于为Viewpager上展示ImagerView(图片)的控件设置图片@Overridepublic void displayImage(Context context, Object path, ImageView imageView) {//得到ImageLoader的实例com.nostra13.universalimageloader.core.ImageLoader instance = com.nostra13.universalimageloader.core.ImageLoader.getInstance();//通过ImageLoader设置图片instance.displayImage((String) path, imageView);}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
5、通过数据请求工具类请求网络数据
————-工具类在上一篇博客——————–
6、Banner的图片点击事件
banner.setOnBannerListener(new OnBannerListener() {
@Override
public void OnBannerClick(int position) {
Toast.makeText(MainActivity.this, "您正在点击图片" + position, Toast.LENGTH_SHORT).show();
}
});
/http://blog.csdn.net/codefarmercxy/article/details/64125394/
Banner banner = (Banner) findViewById(R.id.banner);//设置banner样式banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE);//设置图片加载器banner.setImageLoader(new GlideImageLoader());//设置图片集合banner.setImages(images);//设置banner动画效果banner.setBannerAnimation(Transformer.DepthPage);//设置标题集合(当banner样式有显示title时)banner.setBannerTitles(titles);//设置自动轮播,默认为truebanner.isAutoPlay(true);//设置轮播时间banner.setDelayTime(1500);//设置指示器位置(当banner模式中有指示器时)banner.setIndicatorGravity(BannerConfig.CENTER);//banner设置方法全部调用完毕时最后调用banner.start();//结束轮播banner.stopAutoPlay();
banner 图片自动轮播相关推荐
- 怎样实现banner自动播放html,纯CSS3实现banner图片自动轮播效果方式总结
自动轮播: 实现切换图片,图片循环播放:鼠标悬停某张图片, 则暂停切换.css 方法一.opacity控制透明度实现轮播效果 依照需求咱们选择用CSS3的animation动画进行实现:transit ...
- ios 图片自动轮播
ios 图片自动轮播 #import "NYViewController.h"#define kImageCount 5@interface NYViewController () ...
- iOS实现图片自动轮播展示
一.需要实现的效果如下图1,首页图片自动轮播展示,其中图片从网络异步加载,加载过程用风火轮显示加载中,如图2. 本文参考了以下博客文章: http://www.haodaima.net/art/268 ...
- 广告图片自动轮播控件
2019独角兽企业重金招聘Python工程师标准>>> 自定义广告轮播 自定义控件ImageCycleView 每个广告页的对象(包含具体显示图片.内容.id等) 自定义广告控件 I ...
- java图片轮播_java制作广告图片自动轮播控件
首页图片的轮播 /** * 广告图片自动轮播控件 * */ public class ImageCycleView extends LinearLayout { /** * 上下文 */ privat ...
- JavaScript实现图片自动轮播
目录 1.轮播图片 1.1图片切换功能 1.2定时器功能 1.3图片自动轮播实现 2.页面定时弹出广告 2.2 技术分析 2.3步骤分析 2.4代码实现 3.表单校验 3.1需求分析 3.2技术分析 ...
- html5时间线图片自动轮播,js实现自动播放匀速轮播图
本文实例为大家分享了js实现自动播放匀速轮播图的具体代码,供大家参考,具体内容如下 函数封装:( 匀速运动函数) function animate(obj,target,step,speed){ cl ...
- 自动图片轮播php源码,js图片自动轮播代码分享(js图片轮播)
1.利用图片width显示位置来播放图片,技术:.offsetWidth .aBtn[i].index = i .setInterval() .oUl[0].style.left = .onclic ...
- JQuery实现图片自动轮播左右切换鼠标移入
首先 轮播的精髓就是在于图片的平滑滚动,下面图片应该能一下就看明白: 第一 我们将可视区控制在我们想呈现的内容的大小 第二 接着是在可视区内放入内容(图片): 第三 JQ效果实现 , 中下方小圆点(按 ...
- php中实现图片自动轮播,轻松实现javascript图片轮播特效_javascript技巧
本文实例介绍了javascript图片轮播特效的详细代码以及实现思路,分享给大家供大家参考,具体内容如下 还是先来看一看效果图: 具体代码: 一.HTML代码分析 此效果的层次结构比较清楚: 1. c ...
最新文章
- 使用c#生成高品质小空间的缩略图
- Windows 给力!可以扔掉 Linux 虚拟机了!
- jquery 3D分页翻转滑块
- 【图像分割应用】医学图像分割(一)——脑区域分割
- ACCESS中的Update语句不支持Select的解决办法
- 一群猴子排成一圈,按1,2,...,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈...
- ubuntu 14.04 安装chrome及给chromium 安装 flash player
- [模板]平面最近点对
- 优秀的云存储解决方案Dropbox,现在注册就有2G
- Android 支持主线 Linux 内核指日可待?
- 欠拟合和过拟合的一般解决方法
- [leetcode]174. 地下城游戏
- LoadRunner参数化---数据文件属性 之 数据分配方法和数据更新方法
- 3D人体姿态估计总结
- 致远oa mysql 安装_致远OA协同办公系统OA安装步骤.doc
- JavaFx教程-01初识javaFX
- 预训练权重到底是个啥
- biti_rainy's blog
- 计算机网络课程设计——中小型网络工程设计
- PC端判断屏幕宽度到达手机宽度的时候,直接跳转手机页面