首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android:在远程服务器更新图片后,imageview仍然显示旧图片

Android中,当远程服务器更新图片后,ImageView仍然显示旧图片的原因可能是缓存导致的。Android中的ImageView通常会使用缓存来提高性能和加载速度。为了解决这个问题,可以尝试以下几种方法:

  1. 清除缓存:可以通过调用ImageView的setImageDrawable(null)或setImageBitmap(null)方法来清除缓存,然后再重新加载图片。这样可以确保ImageView重新从服务器获取最新的图片。
  2. 使用缓存控制策略:可以使用一些缓存控制策略来确保ImageView获取最新的图片。例如,可以使用HTTP头部的Cache-Control字段来控制缓存的行为。通过设置Cache-Control为no-cache或max-age=0,可以告诉客户端不使用缓存,每次都从服务器获取最新的图片。
  3. 使用版本号或时间戳:在远程服务器更新图片时,可以在图片的URL中添加一个版本号或时间戳参数。每次更新图片时,修改版本号或时间戳,这样可以确保每次请求的URL都是唯一的,从而避免缓存的影响。
  4. 使用图片加载库:可以使用一些成熟的图片加载库,如Glide、Picasso等。这些库通常提供了更灵活的缓存控制选项,可以根据需要来加载最新的图片。

总结起来,解决Android中远程服务器更新图片后ImageView仍然显示旧图片的问题,可以通过清除缓存、使用缓存控制策略、使用版本号或时间戳、使用图片加载库等方法来确保ImageView获取最新的图片。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

AndroidImageView上直接显示网络图片

ImageView中,没有一个方法是可以直接显示网络的图片的,当我们经常需要显示网络图片时,每次都有一大堆的操作,这会很麻烦,今天就教大家ImageView上轻松显示网络图片。...ImageView,要使用MyImageView,要把刚才重写的一个MyImageView的全路径写上 <Button android:text="加载网络图片" android...压缩 这是比较简单的从网络获取照片,直接在ImageView显示,但是你有没有考虑过如果网络的图片很大,已经超出了手机屏幕的大小,如果还是加载原图的话无疑是浪费内存,还有可能造成内存溢出...首先获取ImageView显示的宽度和高度 /** * 获取ImageView实际的宽度 * @return 返回ImageView实际的宽度 */ public...最后是into()方法,就是把我们要显示ImageView加载进去,那就大功告成了。

6.2K40
  • Android实现标题上显示隐藏进度条效果

    一个界面,实现在向页面添加图片时,标题上显示一个水平进度条,当图片载入完毕,隐藏进度条并显示图片 具体实现方法: res/layout/main.xml: <LinearLayout xmlns...,标题上显示一个水平进度条,当图片载入完毕, * 隐藏进度条并显示图片 * */ //功能:创建异步任务,添加4张图片 class MyTack extends AsyncTask<Void...(245,108)); imageView.setImageResource(imageId[i-1]);//设置要显示图片 layout2.addView(imageView);//将imageView...} return layout2; } //功能:更新进度(此方法主线程中运行) @Override protected void onProgressUpdate(Integer......values) { setProgress(values[0]*2500);//动态更新最新进度 super.onProgressUpdate(values); } //功能:执行任务(此方法主线程中运行

    1.1K10

    (转载非原创)Android系统Bitmap内存分配原理与优化

    拿钢铁侠这张图片举例,它的尺寸是350*350,可以看到电脑磁盘上,它只占36KB的空间。 我们创建一个简单的Demo,页面正中央是一个ImageView,用于显示这张钢铁侠图片。...然后用GIMP工具打开该文件,格式那里选择RGBA(大部分Bitmap都使用这种格式),宽与高可以MAT中看到,笔者这里是800 * 800。设置好格式和宽高,就可以看到图片的真实面目了。...仍然以这张钢铁侠为例,图片本身是350px * 350px,当我们把它加载到200px * 200px的ImageView当中时,占用空间是0.49MB。...Picasso().get().load(IMAGE_URL).fit().into(imageVIEW) 相反场景:小图加载到大ImageView中 通常为了提供更清晰的界面,防止图片拉伸失真模糊,...布局里创建两个ImageView,观察这两张图片最终的显示效果,以及分配内存情况。

    69020

    基于Android开发的天气预报app(源码下载)「建议收藏」

    主要实现了: 1、定位城市天气显示; 2、城市编辑功能(增、删、改、查)以及对应天气显示信息的改变; 3、天气信息的Widget窗口显示(城市的编辑功能可以远程更新Widget窗口信息的显示)...建议官网下载,因为国内很多映射文件多少都是有点年代的,还是下载最新的比较好,也免去更新的麻烦。不过国内由于网络限制,上Android官网需要访问国外。...二、 系统设计分析 1、天气信息界面显示设计 首先先上效果图: 接下来我介绍一下天气显示信息中用到的一些设计: 首先是功能实现上的: 1)首先背景图片是每天会更新的,是从必应网上获取到的背景图片...#城市和天气信息显示模块 3、天气信息的显示 这里相对麻烦一点,因为天气信息的显示中我们做了比较多的功能 获取背景图片图片更新 这里我使用的是必应主页提供的背景图片作为天气信息显示的背景图片http...创建Glide的主要目的有两个,一个是实现平滑的图片列表滚动效果,另一个是支持远程图片的获取、大小调整和展示。

    2.8K10

    Android 内存缓存:手把手教你学会LrhCache算法

    屏幕上需要一次性显示多少张图片和多少图片在等待显示 // c. 手机的大小和密度是多少(密度越高的设备需要越大的 缓存) // d....保存图片的质量(不同像素的不同情况下显示) final int cacheSize = maxMemory / 8; // 3....当 ImageView 加载图片时,会先在LruCache中看有没有缓存该图片:若有,则直接获取 mMemoryCache.get(key); ---- 5....6.2 获取缓存:get() 作用:获取缓存 & 更新队列 当调用 get() 获取缓存对象时,就代表访问了1次该元素 访问将会更新队列,使得整个队列是按照 访问顺序 排列 示意图如下 ?...上述更新过程是 get()中完成 源码分析 /** * 使用函数(以加载图片为例) **/ mMemoryCache.get(key); /** * 源码分析 **/

    92020

    Android训练课程(Android Training) - 高效的显示图片

    Android应用的UI 需要即时地加载多个位图。像ListView,GridView 和 ViewPager 组件 通常包含多个位图屏幕上,更多可能性关闭屏幕时,使用手指拨动,立即准备去显示。...一个更高分辨率的图片不能提供更多可见的好处,但是仍然占据珍贵的内存空间,和由于额外的缩放而导致额外的性能开销。...下面是一些考虑的因素: 估计记载整个图片到内存的内存占用(使用)量 基于你的应用的其他内存需要, 你愿意的分配给的 加载图片的内存占用量 目标 ImageView 的尺寸 或者 你要加载到显示用的...在这种方式中,一个 BitmapDrawable 被用于作为一个图象占位符,在任务完成,它能够被显示 ImageView中: static class AsyncDrawable extends BitmapDrawable...很多情形下(比如ListView, GridView 或 ViewPager),屏幕上的图像总数,结合那些不久后滚动显示再屏幕的图片,根本就是无限的。

    2.9K00

    Android内存缓存:手把手教你学会LrhCache算法

    前言 内存缓存知识Android开发中实现重要 本文将全面介绍内存缓存的所有相关知识(含LrhCache算法、其原理等),希望您们会喜欢 目录 1....屏幕上需要一次性显示多少张图片和多少图片在等待显示 // c. 手机的大小和密度是多少(密度越高的设备需要越大的 缓存) // d....保存图片的质量(不同像素的不同情况下显示) final int cacheSize = maxMemory / 8; // 3....当 ImageView 加载图片时,会先在LruCache中看有没有缓存该图片:若有,则直接获取 mMemoryCache.get(key); 5....6.2 获取缓存:get() 作用:获取缓存 & 更新队列 当调用 get() 获取缓存对象时,就代表访问了1次该元素 访问将会更新队列,使得整个队列是按照 访问顺序 排列 示意图如下 上述更新过程是

    43140

    看到如此多的MVP+Dagger2+Retrofit+Rxjava项目,轻松拿star,心动了吗?

    错误处理, 错误自动重试, 捕捉整个应用的所有错误 全局 UI 自适应 图片加载类 ImageLoader 使用策略模式和建造者模式, 轻松切换图片加载框架, 方便功能扩展 网络请求日志打印封装(提供解析服务器的请求信息和服务器的响应信息...git fetch arms拉取远程仓库最新的版本 git merge arms/master --allow-unrelated-histories合并远程仓库到当前分支 后面如果本框架有更新就只用重复...中的大部分的作用为通过从Model层接口获取数据,调用View层接口显示数据,首先实现BasePresenter,指定Model和View的范型,注意一定要指定Contract中定义的接口,Presenter...字段,内部根据这个字段 if|else,其他操作同理,当需要切换图片请求框架或图片请求框架升级变更了 Api 时,这里可以将影响范围降到最低,所以封装 ImageLoader 是为了屏蔽这个风险)...Activity(未调用onPause),AppManager封装有多种方法,可以很方便的对它们进行操作,也可以未持有AppManager的情况下,通过EventBus远程遥控它的所有方法,这样我们可以整个

    2.9K30

    Carson带你学Android:最全面解析图片加载库Glide用法

    .asBitmap()//显示gif静态图片 .asGif();//显示gif动态图片 .into(imageView); 2.2.3 关于缓存 设置磁盘缓存策略 Glide.with...:不缓存任何图片,即禁用磁盘缓存 // DiskCacheStrategy.ALL :缓存原始图片 & 转换图片(默认) // DiskCacheStrategy.SOURCE:只缓存原始图片(原来的全分辨率的图像...,即不缓存转换图片) // DiskCacheStrategy.RESULT:只缓存转换图片(即最终的图像:降低分辨率 / 或者转换 ,不缓存原始图片 设置跳过内存缓存 Glide .with...Glide 将会仍然利用磁盘缓存来避免重复的网络请求。...步骤3:MainActivity中 ImageView targetImageView = (ImageView) findViewById(R.id.ImageView); String

    86620

    Android悬浮窗的实现(易错点)

    前言   现在很多应用都使用到悬浮窗,例如微信视频的时候,点击Home键,视频小窗口仍然会在屏幕上显示。这个功能在很多情况下都非常有用。...如果在Android 8.0以上版本仍然使用TYPE_PHONE类型的悬浮窗口,则会出现如下异常信息: android.view.WindowManager$BadTokenException: Unable...完整的源码地址:https://github.com/dongzhong/TestForFloatingWindow   为了让悬浮窗与Activity脱离,使其应用处于后台时悬浮窗仍然可以正常运行,...因为悬浮窗显示的位置也许会挡住背后我们想要看到的信息,如果能够把悬浮窗拖走那就最好了。   Android中,触摸事件的处理算是一个最基本操作了,直接上代码。...实现起来与上面的图片播放器基本相同,只是改变了控件和相应的播放逻辑。   布局文件类似上面的图片播放器,只是把ImageView替换成了SurfaceView。   创建悬浮窗控件。

    3.4K10

    Android从零单排系列九】《Android视图控件——ImageView

    一.ImageView基本介绍   Android 应用开发中,我们通常使用 ImageView显示图片。...scaleType fitStart:保持宽高比例缩放图片,直到较长的边与image的边长相等,缩放完成图片放在ImageView的左上角 fitCenter:默认值,同上,缩放后放中间 fitEnd...:同上,缩放后放右下角 fitXY:对图像横纵方向进行独立缩放,使得该图片安全适应imageview,但图片宽高比可能发生改变 center:保持原图大小,显示中心,当原图大小大于imageview大小...http的缓存很好的结合,完全是自己的一套缓存机制 Picasso 使用方便,一行代码完成加载图片显示,框架体积小 缺点在于不支持GIF,并且他可能是想让服务器去处理图片的缩放,他缓存的图片是未缩放的,...2.渐进式加载JPEG图片,支持图片从模糊到清晰加载 3.图片可以以任意的中心店显示ImageView,而不仅仅是图片的中心 4.JPEG图片改变大小也是native进行的,不是虚拟机的堆内存,同样减少

    1.2K30

    Android系统Bitmap内存分配原理与优化

    拿钢铁侠这张图片举例,它的尺寸是350*350,可以看到电脑磁盘上,它只占36KB的空间。 我们创建一个简单的Demo,页面正中央是一个ImageView,用于显示这张钢铁侠图片。...然后用GIMP工具打开该文件,格式那里选择RGBA(大部分Bitmap都使用这种格式),宽与高可以MAT中看到,笔者这里是800 * 800。设置好格式和宽高,就可以看到图片的真实面目了。...仍然以这张钢铁侠为例,图片本身是350px * 350px,当我们把它加载到200px * 200px的ImageView当中时,占用空间是0.49MB。...Picasso().get().load(IMAGE_URL).fit().into(imageVIEW) 相反场景:小图加载到大ImageView中 通常为了提供更清晰的界面,防止图片拉伸失真模糊,...布局里创建两个ImageView,观察这两张图片最终的显示效果,以及分配内存情况。

    1.2K20

    Android网络 | URL和URLConnection详解及其实战案例

    (4)远程资源变为可用, 程序可以访问远程资源的头字段或通过输入流 读取远程资源的数据。 在建立和远程资源的实际连接之前, 可以通过如下方法来设置请求头字段。...案例1:Android手机屏幕中显示网络中的图片 日常应用中, 我们经常不需要将网络中的图片 保存到手机中, 而只是在网络浏览一下即可。...主要思路是: 子线程中进行网络请求, 具体的网络请求操作如上所述 (这里用的是 HttpURLConnection去连接远程资源, 实际开发中可以尝试集成第三方库), 请求成功 把得到的资源子线程编码...:text="获取网络上的图片" /> <ImageView android:id="@+id/myImageView1" android:layout_width..." android:text="http://www.baidu.com/img/baidu_sylogo1.gif" android:hint="请输入图片地址" />

    1.6K40
    领券