android 图片视频轮播框架,androidlayout轮播图,Android实现炫酷轮播图效果
这篇文章主要为大家详细介绍了机器人实现炫酷轮播图效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
轮播图的实现有很多种方式,早先我在网上看了下别人写的轮播图,感觉都比较的墨守成规,有的还有可能加载不了网络图片所以我在这里自己重新写了下轮播图,方便日后的项目使用
在下面的代码中,我也用齐射封装了网络请求框架,异步加载网络图片,也可以给大家参考,非常实用
效果图:这只是其中的一种效果
底层封装的我在下面会一一展示,先看下在主要活动中怎样调取这个轮播控件
包com吴洁广告活动;
导入安卓查看查看;
导入com吴洁广告r;
导入com吴洁广告flash视图效应常数;
导入com吴洁广告flash视图flash视图;
导入JavautilArrayList
公共类主要活动扩展基础活动{
私有FlashView
private ArrayList string image URL=new ArrayList string();
@覆盖
受保护的void initView() {
setContentView(r . layout活动_主);
flash view=(flash view)findViewById(r . idflash _ view);
}
@覆盖
受保护的void initListener() {
}
@覆盖
受保护的void initData() {
/**
* 获取接口返回的轮播图地址,获取的部分我已经注释掉了,可以使用我在这里就直接弄了四张图片
*/
imageUrls.add('1303680113,133301350fm=21gp=0jpg’);
imageUrls.add('1350614941,725003865fm=21gp=0jpg’);
imageUrls.add('3293842903,1040789920fm=21gp=0jpg’);
imageUrls.add(',1368131788fm=21gp=0jpg’);
flash视图设置图像URIs(图像网址);
/**(吴洁)增加代码用法:需要什么类型falshView直接去找这个类就行在flashView框架中,同时修改视角中的flashView注释的那块*/
flash视图设置效果(效果常数.CUBE _ EFFECT);
//截击请求新实例(IP地址常量getadnertisment(' ',' '))newGsonRequest2(请求.方法POST,IpAddressConstants .广告URL,广告类,
//新响应听众广告(){
//@覆盖
//响应时公共无效(广告d广告){
///**在此处将服务器返回的轮播图地址一个一个放入图像统一资源定位器中*/
//flash视图设置图像URIs(图像网址);
///**(吴洁)增加代码用法:需要什么类型falshView直接去找这个类就行在flashView框架中,同时修改视角中的flashView注释的那块*/
//flash视图设置效果(效果常数.CUBE _ EFFECT);
//}
//},新响应错误侦听器(){
//@覆盖
//public void on error response(凌空错误凌空错误){
//
//}
//});
}
@覆盖
公共void onClick(视图视图){
}
}
主要活动继承的基础活动:
包com吴洁广告活动;
导入安卓OS捆绑;
导入安卓支持注释可空;
导入安卓支持V7appapp compat活动;
导入安卓查看查看;
导入安卓查看窗户;
导入安卓小部件敬酒;
/**
*之前
*公司:
*作者:吴洁
*时间:2016/11
*用法:所有自定义活动的父类
* desc:
*其他:
*/前
*/
公共抽象类基础活动扩展了AppCompatActivity实现视图OnClickListener{
@覆盖
受保护的void onCreate(@ Nullable Bundle savedInstanceState){
超级棒oncreate(savedInstanceState);
supportRequestWindowFeature(窗口特征_编号_标题);
init view();
initData();
初始化侦听器();
}
/**
* 初始化控件
*/
受保护的抽象void init view();
/**
* 设置监听
*/
受保护的抽象void初始化侦听器();
/**
* 初始化数据
*/
受保护的抽象void initData();
/**
* 吐司
*/
public void showShortToast(String toast){
Toast.makeText(这个,吐司,吐司. LENGTH_SHORT)show();
}
}
那么下面我就来封装齐射请求网络数据框架,封装好了之后,调用在主要活动中有体现
首先,截击请求类如下:
包com吴洁广告凌空;
导入安卓内容语境;
导入安卓util日志;
导入com.android凌空请求队列;
导入com.android凌空回应;
导入com安卓凌空工具箱凌空;
导入Javautilhashmap
导入Javautil地图;
/**
* 请求类
*/
公共类截击请求{
私有静态请求队列
private MapString,String mMap=new HashMap();
私人截击请求(){
}
私有VolleyRequest(MapString,String mMap) {
this.mMap=mMap
}
/**
* @param上下文应用程序上下文
*/
公共静态void buildRequestQueue(上下文上下文){
mRequestQueue=凌空新请求队列(上下文);
//.做某事
}
/**(王书杰)增加代码用法:非带参数*/
公共静态VolleyRequest新实例(){
if (mRequestQueue==null) {
抛出新的NullPointerException('首先调用buildRequestQueue方法');
}
//.
返回新的凌空请求();
}
/**(王书杰)增加代码用法:带参数*/
public static VolleyRequest新实例(MapString,String mMap) {
if (mRequestQueue==null) {
抛出新的NullPointerException('首先调用buildRequestQueue方法');
}
//.
Log.i('mtag ',' new instance===========' mmapget('商品名称');
返回新的排球请求(mMap);
}
/**
* @param url
* @param clazz
* @param侦听器
* @param错误监听器
*带参
* @返回
*/
public T gson request new gson request 2(int方法,字符串url,分类,响应.听众听众,
回应错误监听器错误监听器){
GsonRequest请求=新GsonRequest(方法,网址,类别,侦听器,错误侦听器){
@覆盖
受保护的MapString,String getParams() {
Log.i('mtag ',' get params===========' mmapget('商品名称');
返回mMap
}
};
mRequestQueue.add(请求);
退货请求;
}
/**(吴洁)增加代码用法:不带参的*/
public T gsonrequest newGsonRequest(字符串URL,clazz,Response .听众听众,
回应错误监听器错误监听器){
gson request request=new gson request(URL,clazz,listener,error listener);
mRequestQueue.add(请求);
退货请求;
}
}
GsonRequest类:
包com吴洁广告凌空;
导入安卓util日志;
导入com.android凌空网络响应;
导入com.android凌空分析错误;
导入com.android凌空请求;
导入com.android凌空回应;
导入com.android凌空回应错误侦听器;
导入com.android凌空回应听众;
导入com.android凌空工具箱httpheaderparser
导入com谷歌gsongson
导入com谷歌gson反思类型令牌;
导入Javaiounsupportedencodingexception
公共类GsonRequestT扩展了请求T {
私人最终听众;
私有静态Gson MGS on=new Gson();
二等兵麦克拉斯
私有TypeTokenT mTypeToken
公共GsonRequest(int方法,字符串url,clazz类,听众侦听器,
错误监听器错误监听器){
超级(方法、url、错误监听器);
麦克拉斯=克拉兹
mListener=监听器
}
公共GsonRequest(int方法,字符串url,TypeTokenT类型令牌,听众侦听器,
错误监听器错误监听器){
超级(方法、url、错误监听器);
mTypeToken=typeToken
mListener=监听器
}
public GsonRequest(字符串url,clazz,ListenerT侦听器,ErrorListener errorListener) {
这个(方法. GET,url,clazz,监听器,错误监听器);
}
公共GsonRequest(字符串url,TypeTokenT类型令牌,听众侦听器,ErrorListener errorListener) {
超级(法. GET,url,错误监听器);
mTypeToken=typeToken
mListener=监听器
}
@覆盖
受保护的响应集解析网络响应(网络响应响应){
尝试{
String JSON String=new String(响应数据,‘UTF-8’);
Log.i('mtag ','响应====='响应数据);
if (mTypeToken==null)
返回响应成功(MGS继续来自JSON(JSON string,mClass),
httpheaderparserparsecacheheaders(response));
其他
返回(ResponseT)响应成功(mgson从JSON(JSON string,mTypeToken.getType()),
httpheaderparserparsecacheheaders(response));
} catch(UnsupportedEncodingException e){
返回响应错误(新分析错误(e));
}
}
@覆盖
受保护的void交付响应(T响应){
mListener.onResponse(响应);
}
}
管理接口的类:
包com吴洁广告凌空;
导入Javautilhashmap
导入Javautil地图;
/**
*作者:吴洁2016/11
*用法:
*/
公共类IpAddressConstants {
公共静态字符串MYIP='http://xxxxx
:8080/';
/**======轮播图======*/
public static final String advertisement _ URL=MYIP ' app interface/advert/index advert ';
/**(吴洁)增加代码用法:获取轮播图需要的地图数据*/
public static MapString,String getAdnertisment(String city,String token){
MapString,String mMap=new HashMap();
mMap.put('city_name ',city);//这个键是你要上传参数的的钥匙,服务器通过这个键来获取客户端穿的参数。
mMap.put('token ',令牌);
返回mMap
}
}
封装好后,我们要将齐射请求加入到队列中(初始化):
包com。吴洁。广告。应用;
导入安卓。app。应用;
导入安卓。内容。语境;
导入com。诺斯特拉13。通用图像加载器。缓存。记忆。impl。lrumemorycache
导入com。诺斯特拉13。通用图像加载器。核心。图像加载器;
导入com。诺斯特拉13。通用图像加载器。核心。图像加载器配置;
导入com。吴洁。广告。凌空抽射。截击请求;
/**
*之前
*公司:xxx
*作者:吴洁
*时间:2016/11
*用法:
* desc:
*其他:
*/前
*/
公共类我的应用扩展应用程序{
公共静态上下文mContext
@覆盖
public void onCreate() {
超级棒。oncreate();
m context=getApplicationContext();
截击请求。buildrequestqueue(this);
initimage loader();
}
私有void initImageLoader() {
/**
*图像加载器的全局的配置信息
*/
图像加载器配置配置=新的图像加载器配置.建筑商(本)。内存缓存(新的LruMemoryCache(2 * 1024 * 1024))。diskCacheFileCount(100)。memoryCacheSize(2 * 1024 * 1024) //设置内存的缓存。磁盘缓存大小(50 * 1024 * 1024) //设置磁盘缓存的大小。threadPoolSize(4) //设置线程池的大小是多少。build();
//设置配置信息这
//ImageLoader.getInstance().初始化(新的图像加载器配置.建筑商(这个)。build());
ImageLoader.getInstance().初始化(配置);
//imageloader配置ade故障=imageloader配置。创建默认(this);
}
}
到此为止,网络请求框架就封装好了,下面就是轮播图的实现,因为代码文件比较多,我就不一一列举出来了,如果大家有需要可以找我要整个代码。
注意点:
1.轮播图图片描述字体资源文件的导入
2.网络请求框架的初始化
下载演示
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。