FlaycoBanner是一个开源图片轮播框架,支持android2.2及以上;

git地址:https://github.com/H07000223/FlycoBanner_Master

在androidStudio中导入:

dependencies{
compile 'com.android.support:support-v4:22.2.1'
compile 'com.nineoldandroids:library:2.4.0'
compile 'com.flyco.banner:FlycoBanner_Lib:2.0.2@aar'
}

需要注意module和app中库的版本统一;

以 在Fragment中使用为例:

先需要自定义banner继承BaseIndicatorBanner,设置数据:

package widget;

import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView; import com.bumptech.glide.Glide;
import com.flyco.banner.widget.Banner.BaseIndicatorBanner; import enity.BannerItem;
import mj.zk.com.okhttpdemo.R;
import utils.ViewFindUtils; public class SimpleImageBanner extends BaseIndicatorBanner<BannerItem, SimpleImageBanner> {
private ColorDrawable colorDrawable; public SimpleImageBanner(Context context) {
this(context, null, 0);
} public SimpleImageBanner(Context context, AttributeSet attrs) {
this(context, attrs, 0);
} public SimpleImageBanner(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
colorDrawable = new ColorDrawable(Color.parseColor("#555555"));
} @Override
public void onTitleSlect(TextView tv, int position) {
final BannerItem item = mDatas.get(position);
tv.setText(item.title);
} @Override
public View onCreateItemView(int position) {
View inflate = View.inflate(mContext, R.layout.adapter_simple_image, null);
ImageView iv = ViewFindUtils.find(inflate, R.id.iv); final BannerItem item = mDatas.get(position);
int itemWidth = mDisplayMetrics.widthPixels;
int itemHeight = (int) (itemWidth * 360 * 1.0f / 640);
iv.setScaleType(ImageView.ScaleType.CENTER_CROP);
iv.setLayoutParams(new LinearLayout.LayoutParams(itemWidth, itemHeight)); String imgUrl = item.imgUrl; if (!TextUtils.isEmpty(imgUrl)) {
Glide.with(mContext)
.load(imgUrl)
.override(itemWidth, itemHeight)
.centerCrop()
.placeholder(colorDrawable)
.into(iv);
} else {
iv.setImageDrawable(colorDrawable);
} return inflate;
}
}

数据javabean实体类:

package enity;

public class BannerItem {
public String imgUrl;
public String title;
}

  

数据url提供:

package utils;

import android.support.v4.view.ViewPager;

import com.flyco.banner.transform.DepthTransformer;
import com.flyco.banner.transform.FadeSlideTransformer;
import com.flyco.banner.transform.FlowTransformer;
import com.flyco.banner.transform.RotateDownTransformer;
import com.flyco.banner.transform.RotateUpTransformer;
import com.flyco.banner.transform.ZoomOutSlideTransformer; import java.util.ArrayList; import enity.BannerItem;
import mj.zk.com.okhttpdemo.R; public class DataProvider {
public static String[] titles = new String[]{
"欢乐颂:五美破案总动员",
"无心法师:生死离别!月牙遭虐杀",
"花千骨:尊上沦为花千骨",
"综艺饭:胖轩偷看夏天洗澡掀波澜",
"碟中谍4:阿汤哥高塔命悬一线,超越不可能",
};
public static String[] urls = new String[]{//640*360 360/640=0.5625
"http://r2.ykimg.com/050C0000571EB4F867BC3D14E908D907",//"欢乐颂:五美破案总动员"
"http://photocdn.sohu.com/tvmobilemvms/20150907/144158380433341332.jpg",//无心法师:生死离别!月牙遭虐杀
"http://photocdn.sohu.com/tvmobilemvms/20150907/144160286644953923.jpg",//花千骨:尊上沦为花千骨
"http://photocdn.sohu.com/tvmobilemvms/20150902/144115156939164801.jpg",//综艺饭:胖轩偷看夏天洗澡掀波澜
"http://photocdn.sohu.com/tvmobilemvms/20150907/144159406950245847.jpg",//碟中谍4:阿汤哥高塔命悬一线,超越不可能
}; public static ArrayList<BannerItem> getList() {
ArrayList<BannerItem> list = new ArrayList<>();
for (int i = 0; i < urls.length; i++) {
BannerItem item = new BannerItem();
item.imgUrl = urls[i];
item.title = titles[i]; list.add(item);
} return list;
} public static ArrayList<Integer> geUsertGuides() {
ArrayList<Integer> list = new ArrayList<>();
list.add(R.mipmap.guide_img_1);
list.add(R.mipmap.guide_img_2);
list.add(R.mipmap.guide_img_3);
list.add(R.mipmap.guide_img_4); return list;
} public static Class<? extends ViewPager.PageTransformer> transformers[] = new Class[]{
DepthTransformer.class,
FadeSlideTransformer.class,
FlowTransformer.class,
RotateDownTransformer.class,
RotateUpTransformer.class,
ZoomOutSlideTransformer.class,
};
}

  

在布局中使用此banner如下:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:banner="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="fragment.FragmentTest"> <widget.SimpleImageBanner
android:id="@+id/sib_simple_usage"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
banner:bb_indicatorGravity="RIGHT"
banner:bb_scale="0.4"/> </FrameLayout>

在Fragment中:

   @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_fragment_test,container,false); SimpleImageBanner sib = (SimpleImageBanner) view.findViewById(R.id.sib_simple_usage);
sib.setSource(DataProvider.getList())
.startScroll(); //获取图片列表并滚动 sib.setOnItemClickL(new SimpleImageBanner.OnItemClickL(){
@Override
public void onItemClick(int position) {
Toast.makeText(getContext(),"position->"+position,Toast.LENGTH_SHORT).show();
}
});
return view;
}

出来的效果为:

使用FlaycoBanner实现图片轮播效果(加载网络图片)的更多相关文章

  1. CSS3图片轮播效果

    原文:CSS3图片轮播效果 在网页中用到图片轮播效果,单纯的隐藏.显示,那再简单不过了,要有动画效果,如果是自己写的话(不用jquery等),可能要费点时间.css3的出现,让动画变得不再是问题,而且 ...

  2. 超实用的JavaScript代码段 Item3 --图片轮播效果

    图片轮播效果 图片尺寸 统一设置成:490*170px; 一.页面加载.获取整个容器.所有放数字索引的li及放图片列表的ul.定义放定时器的变量.存放当前索引的变量index 二.添加定时器,每隔2秒 ...

  3. JQ 实现轮播图(3D旋转图片轮播效果)

    轮播图效果如下: 代码: <!DOCTYPE html> <html xmlns="/www.w3.org/1999/xhtml"> <head> ...

  4. ios图片轮播效果

    代码地址如下:http://www.demodashi.com/demo/11959.html ImageCarousel 简单封装的图片轮播器 内存过大由于我加载的图片分辨率较高(4k) 文件目录 ...

  5. js图片轮播效果实现代码

    首先给大家看一看js图片轮播效果,如下图 具体思路: 一.页面加载.获取整个容器.所有放数字索引的li及放图片列表的ul.定义放定时器的变量.存放当前索引的变量index 二.添加定时器,每隔2秒钟i ...

  6. jQuery个性化图片轮播效果

    jQuery个性化图片轮播效果 购物产品展示:图片轮播器<效果如下所示> 思路说明: 每隔一段时间,实现图片的自动切换及选项卡选中效果,鼠标划入图片动画停止,划出或离开动画开始 两个区域: ...

  7. js实现淘宝首页图片轮播效果

    原文:http://ce.sysu.edu.cn/hope2008/Education/ShowArticle.asp?ArticleID=10585 <!DOCTYPE html> &l ...

  8. axure 动态面板实现图片轮播效果(淘宝)

    淘宝中经常可以看到店铺中的图片轮播效果,本经验将通过axure7.0实现 工具/原料   axure7.0 方法/步骤     下载需要轮播的图片   将图片引入至axure中,将引入的第一张图片转为 ...

  9. WPF3D图片轮播效果

    原文:WPF3D图片轮播效果 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/m0_37591671/article/details/68059169 ...

随机推荐

  1. smartform

    SMARTFORMS中一般对于固定样式,格式的某一块会选择使用TEMPLATE或者TABLE. 表:上下高度不限,以窗口高度为限.循环输出表数据,每次循环都会按照表行输出,表头和表尾可控制输出.表行中 ...

  2. 制作简单的2D物理引擎(一)——动力学基础

    一切的基础 点 在二维平面中,点$P$就是坐标$(x,y)$,点集就是一系列坐标的集合$\{P_1,P_2,...,P_n\}$,不过这个集合是有序的(顺时针). 向量 加减运算 $$\vec{P}\ ...

  3. Javascript学习笔记2.2 Javascript与DOM选项卡(滑动门)案例详解

    学习了DOM的知识,今天开始做些练习,想到了一个网页滑动门的特效,见下图: 1.通过建立索引实现 <!doctype html> <html> <head> < ...

  4. CentOS7下zip解压和unzip压缩文件

    1.安装zip.unzip应用. yum install zip unzip

  5. Eclipse 离线安装ADT

    由于小猪的Eclipse中ADT版本过低无法打开Android项目了,所以要更新ADT(Android Develop Tools),但是在国内由于谷歌与本国微妙的关系想自动安装总是卡在某个点上. 所 ...

  6. Virtual Box 下Ubuntu桥接网络设置

    转自:http://os.51cto.com/art/200908/144564.htm 一般而言,安装完VirtualBox设定网路时选择默认的NAT模式,Guest就可顺利联网了,但是这种方式比较 ...

  7. 通过淘宝IP地址库获取IP位置

    地址:http://ip.taobao.com/ 提供的服务包括: 1. 根据用户提供的IP地址,快速查询出该IP地址所在的地理信息和地理相关的信息,包括国家.省.市和运营商. 2. 用户可以根据自己 ...

  8. 【C#】 格式化说明符 string.Format WriteLine

    定义 格式说明符的语法由3个字段组成:索引号.对齐说明符和格式字段.String.Format和WriteLine都遵守同样的格式化规则. 对齐说明符 对齐说明符表示了字段中字符的最小宽度.对齐说明符 ...

  9. C# 大小写转换,方便index of

    ToUpper:小写转大写ToLower:大写转小写 例: string str=120cm*150g/m2;从中取出120和150,但是又要规避大小写问题,这时候就需要将str转换为大写,然后ind ...

  10. 数组操作splice

    今天,实现某个功能时需要操作数组, var  array=[1,2,3,3,4]; console.log(array);           //结果: 1,2,3,3,4 var data=arr ...