使用Glide安卓图片加载库

  观前提示:本系列文章有关服务器以及后端程序这些概念,我写的全是自己的理解,并不一定正确,希望不要误人子弟。欢迎各位大佬来评论区提出问题或者是指出错误,分享宝贵经验。先谢谢了( ̄▽ ̄)"!

  今天来介绍一下怎么利用Glide库加载服务器上边的图片文件,并且配合Banner库使用实现轮播图效果:

  首先在我们的服务器项目里边先存好我们所需要的图片,如下:

  然后在springmvc.xml这个配置文件里新增如下配置(看过本系列第一篇的朋友应该知道在何处更改):

  这样子我们才能正常的访问到这些图片(方便起见我把用到的三个图片也贴出来):

  hot1.jpg:

  

  hot2.jpg:

  

  hot3.jpg:

  接下来就是安卓端的事情了,大家可以从下面链接里先简单了解下Glide和Banner这两个库:

  Glide3.7.0:

    https://github.com/bumptech/glide

  Banner1.4.10:

    https://github.com/youth5201314/banner/tree/release-1.4.10

  

  首先向项目里添加如下两个依赖:

  • implementation 'com.github.bumptech.glide:glide:3.7.0'
  • implementation 'com.youth.banner:banner:1.4.10'

  然后就是代码的具体实现了:

  先创建一个简单的XML布局,里面只包含com.youth.banner.Banner这一个控件,代码如下:

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"> <com.youth.banner.Banner
android:id="@+id/banner1"
android:layout_width="match_parent"
android:layout_height="130dp"
app:indicator_height="5dp"
app:indicator_width="5dp"
app:is_auto_play="true" /> </LinearLayout>

  设置glide的占位图的做法如下:

 RequestOptions options = new RequestOptions()
.placeholder(R.drawable.img_default)//图片加载出来前,显示的图片
.fallback( R.drawable.img_blank) //url为空的时候,显示的图片
.error(drawable.img_load_failure);//图片加载失败后,显示的图片 Glide.with(this)
.load(URL) //图片地址
.apply(options)
.into(ImagView);

  这里只展示设置加载失败时的占位图,代码如下:

 package com.example.dolphin;

 import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.GridLayoutManager; import android.content.Context;
import android.os.Bundle;
import android.widget.ImageView; import com.bumptech.glide.Glide;
import com.example.dolphin.home.HomeFragmentAdapter;
import com.example.dolphin.utils.Constants;
import com.youth.banner.Banner;
import com.youth.banner.BannerConfig;
import com.youth.banner.Transformer;
import com.youth.banner.loader.ImageLoader; import java.util.ArrayList;
import java.util.List; import butterknife.BindView; public class BannerActivity extends AppCompatActivity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_banner);
Banner banner = (Banner)findViewById(R.id.banner1);
List<String> urls = new ArrayList<>();
urls.add(Constants.HOT_URL + "hot1.jpg");
urls.add(Constants.HOT_URL + "hot2.jpg");
urls.add(Constants.HOT_URL + "hot3.jpg");
//设置内置样式,共有六种可以点入方法内逐一体验使用。
banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR);
//设置图片加载器,图片加载器在下方
banner.setImageLoader(new MyLoader());
//设置图片网址或地址的集合
banner.setImages(urls);
//设置轮播的动画效果,内含多种特效,可点入方法内查找后内逐一体验
banner.setBannerAnimation(Transformer.Default);
//设置轮播间隔时间
banner.setDelayTime(2000);
//设置是否为自动轮播,默认是“是”。
banner.isAutoPlay(true);
//设置指示器的位置,小点点,左中右。
banner.setIndicatorGravity(BannerConfig.CENTER)
//必须最后调用的方法,启动轮播图。
.start();
}
//使用glide作为图片加载器
private class MyLoader extends ImageLoader {
@Override
public void displayImage(Context context, Object path, ImageView imageView) {
//对于很多 Android API 调用,Context 是必须的
Glide.with(context)
//一个字符串的形式表示一个网络图片的 URL
.load((String) path)
//加载失败时的占位图
.error(R.mipmap.ic_launcher)
//图片会显示到对应的 ImageView中
.into(imageView);
}
}
}

加载成功(左)和失败(右)效果:

—————————————我———是———分———割———线————————————

  劳动节更新!

  要不要考虑支持一波勤(tou)恳(lan)码字的博主呢((*≧︶≦))( ̄▽ ̄* )ゞ)?

  方案设计答辩还算顺利,结果也比较让我满意(对得起我辛苦写了好久的设计说明书

如何搭建一个WEB服务器项目(四)—— 实现安卓端图片加载的更多相关文章

  1. 如何搭建一个WEB服务器项目(二)—— 对数据库表进行基本的增删改查操作

    使用HibernateTemplate进行增删改查操作 观前提示:本系列文章有关服务器以及后端程序这些概念,我写的全是自己的理解,并不一定正确,希望不要误人子弟.欢迎各位大佬来评论区提出问题或者是指出 ...

  2. 如何搭建一个WEB服务器项目(六)—— 上传图片至服务器

    上传图片(用户头像)至服务器 观前提示:本系列文章有关服务器以及后端程序这些概念,我写的全是自己的理解,并不一定正确,希望不要误人子弟.欢迎各位大佬来评论区提出问题或者是指出错误,分享宝贵经验.先谢谢 ...

  3. 如何搭建一个WEB服务器项目(三)—— 实现安卓端联网登录

    安卓端调用服务器登录函数进行验证登录 观前提示:本系列文章有关服务器以及后端程序这些概念,我写的全是自己的理解,并不一定正确,希望不要误人子弟.欢迎各位大佬来评论区提出问题或者是指出错误,分享宝贵经验 ...

  4. 如何搭建一个WEB服务器项目(一)—— 开篇 ,搭建SSH整合框架

    使用Intellij IDEA2019创建SSH(Spring+SpringMVC+Hibernate+Maven整合)项目 观前提示:本系列文章有关服务器以及后端程序这些概念,我写的全是自己的理解, ...

  5. 如何搭建一个WEB服务器项目(五)—— Controller返回JSON字符串

    从服务器获取所需数据(JSON格式) 观前提示:本系列文章有关服务器以及后端程序这些概念,我写的全是自己的理解,并不一定正确,希望不要误人子弟.欢迎各位大佬来评论区提出问题或者是指出错误,分享宝贵经验 ...

  6. 搭建一个Web API项目(DDD)

    传送阵:写在最后 一.创建一个能跑的起来的Web API项目 1.建一个空的 ASP.NET Web应用 (为什么不直接添加一个Web API项目呢,那样会有些多余的内容(如js.css.Areas等 ...

  7. 用C写一个web服务器(四) CGI协议

    * { margin: 0; padding: 0 } body { font: 13.34px helvetica, arial, freesans, clean, sans-serif; colo ...

  8. 【原创】从零开始搭建Electron+Vue+Webpack项目框架(五)预加载和Electron自动更新

    导航: (一)Electron跑起来(二)从零搭建Vue全家桶+webpack项目框架(三)Electron+Vue+Webpack,联合调试整个项目(四)Electron配置润色(五)预加载及自动更 ...

  9. [iOS微博项目 - 1.8] - 各种尺寸图片加载 & 控件不显示研究

    A. 图片的加载:  [UIImage imageNamed:@"home"];  加载png图片    一.非retina屏幕  1.3.5 inch(320 x 480)  * ...

随机推荐

  1. 堆溢出---glibc malloc

    成功从来没有捷径.如果你只关注CVE/NVD的动态以及google专家泄露的POC,那你只是一个脚本小子.能够自己写有效POC,那就证明你已经是一名安全专家了.今天我需要复习一下glibc中内存的相关 ...

  2. ES[7.6.x]学习笔记(三)新建索引

    与ES的交互方式 与es的交互方式采用http的请求方式,请求的格式如下: curl -X<VERB> '<PROTOCOL>://<HOST>:<PORT& ...

  3. windows下部署.netcore+docker系列一(安装linux (ubuntu18.4))

    1 下载 虚拟机和 linux 系统 版本是 ubuntu 链接:https://pan.baidu.com/s/1jTxdysoyOhSWD-Ea-7JIbg 提取码:iiad 2  首先要安装 虚 ...

  4. css3--:target选择器称为目标选择器

    :target选择器称为目标选择器,用来匹配文档(页面)的url的某个标志符的目标元素.我们先来上个例子,然后再做分析. 示例展示 点击链接显示隐藏的段落. HTML代码: <h2>< ...

  5. css中的宽和高

    width width表示宽 height height表示高 max-width.min-width max-width表示最大宽度 min-width表示最小宽度 max-height.min-h ...

  6. 2019-2020-1 20199325《Linux内核原理与分析》第八周作业

    Linux内核如何装载和启动一个可执行程序 1.理解编译链接的过程和ELF可执行文件格式,详细内容参考本周第一节:​ 2.编程使用exec*库函数加载一个可执行文件,动态链接分为可执行程序装载时动态链 ...

  7. fseek 在以字符串模式打开的文件中工作不正常 [MSDN]

    For streams opened in text mode, fseek and _fseeki64 have limited use, because carriage return-linef ...

  8. Tomcat系列教材 (一)- 教程

    Tomcat系列教材 (一)- 教程 Tomcat是常见的免费的web服务器. Tomcat 这个名字的来历,Tomcat是一种野外的猫科动物,不依赖人类,独立生活. Tomcat的作者,取这个名字的 ...

  9. 尤雨溪的vue怎么学,应该从vue-cli开始,为什么?

    带手机验证码登陆, 带全套购物车系统 带数据库 前后端分离开发 带定位用户功能 数据库代码为本地制作好了 带支付宝支付系统 带django开发服务器接口教程 地址:   https://www.dua ...

  10. 自动驾驶汽车数据不再封闭,Uber 开源新的数据可视化系统

    日前,Uber 开源了基于 web 的自动驾驶可视化系统(AVS),称该系统为自动驾驶行业带来理解和共享数据的新方式.AVS 由Uber旗下负责自动驾驶汽车研发的技术事业群(ATG)开发,目前该系统已 ...