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

setImageURI(url)在Fresco中已弃用。用什么来代替呢?

在Fresco库中,setImageURI(url)方法确实已经被弃用。为了替代这个方法,你可以使用ImageRequest来构建一个请求,并通过DraweeController来加载图片。以下是如何使用这些新方法的一个示例:

使用ImageRequest和DraweeController

代码语言:txt
复制
import com.facebook.common.util.UriUtil;
import com.facebook.drawee.backends.pipeline.Fresco;
import com.facebook.drawee.controller.AbstractDraweeControllerBuilder;
import com.facebook.drawee.controller.BaseControllerListener;
import com.facebook.drawee.interfaces.DraweeController;
import com.facebook.imagepipeline.request.ImageRequest;
import com.facebook.imagepipeline.request.ImageRequestBuilder;

// 初始化Fresco(通常在Application的onCreate中进行)
Fresco.initialize(context);

// 创建ImageRequest
Uri uri = Uri.parse("https://example.com/image.jpg");
ImageRequest imageRequest = ImageRequestBuilder.newBuilderWithSource(uri)
        .build();

// 获取DraweeControllerBuilder实例
AbstractDraweeControllerBuilder controllerBuilder = Fresco.newDraweeControllerBuilder();

// 创建DraweeController
DraweeController controller = controllerBuilder
        .setImageRequest(imageRequest)
        .setOldController(yourSimpleDraweeView.getController())
        .setControllerListener(new BaseControllerListener<ImageInfo>())
        .build();

// 将控制器设置到SimpleDraweeView
yourSimpleDraweeView.setController(controller);

优势

  • 更好的性能和内存管理:Fresco通过使用自己的内存和磁盘缓存机制,可以更有效地管理图片资源。
  • 异步加载和显示:Fresco支持异步加载图片,不会阻塞UI线程。
  • 图像解码优化:Fresco内置了图像解码器,可以根据设备的屏幕大小和分辨率来优化图像的解码过程。
  • 渐进式加载:Fresco支持渐进式JPEG图像的加载,可以在图像完全下载之前显示图像的低分辨率版本。

应用场景

  • 社交媒体应用:需要快速加载大量用户生成的图片。
  • 电商网站:展示商品图片时需要快速响应用户操作。
  • 新闻阅读应用:加载新闻文章中的图片,保证流畅的用户体验。

注意事项

  • 确保在使用Fresco之前已经正确初始化。
  • 根据实际需求调整缓存策略和图像解码选项。
  • 监听控制器事件以便处理加载失败或其他异常情况。

通过这种方式,你可以继续使用Fresco库来加载和显示图片,同时利用其提供的先进功能和优化。

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

相关·内容

(译)openURL 在 iOS10中已弃用

而与之相关的方法 canOpenURL: 在iOS 9隐私控制里也禁止查询设备中已安装的App。...苹果在iOS 10 中已经弃用了openURL:这个旧方法,用openURL:options:completionHandler:来代替。...(Haley_Wong注:canOpenURL:是在iOS 3中添加的;打开外部链接一般都是用来调起别的App,比如调起打电话、邮件、QQ、微信、支付宝等) iOS 10 中的更新 苹果在UIKit相关的...这个弃用的方法有一个要打开的URL 参数,并且返回一个表示成功或者失败的布尔值: // Objective-C - (BOOL)openURL:(NSURL*)url // Swift open func...(译者注:在iOS 9 使用 openURL:方法打开这个链接时,会在首先调起Safari,然后在Safari中打开这个链接) 更多阅读 What’s New in iOS- 看看UIKit 这一章节

2.7K10

为什么SQL优化中建议用UNION来代替OR

在SQL优化相关资料中,通常可以看到一个建议:用UNION来代替OR 举例 采用 OR 语句: SELECT * FROM a, b WHERE a.p = b.q or a.x = b.y;...a.p = b.q UNION SELECT * FROM a, b WHERE a.x = b.y UNION 语句中明明是会执行两次查询操作,而 OR语句只有一次查询,OR语句反而会慢一点,这是为什么呢...实际测试分析 对用户表 users 进行查询,表中 user_id 字段建有索引 目标 查找 user_id='IjPEBWuEQZ' 或者 user_id='FwYEz8Bzp' 的记录 采用...语句的 type 值为 null,const 表示是常量值引用,非常快 这两项的差距就说明了 UNION 要优于 OR 从我们的直观感觉上也可以理解,虽然这两个方式都用到了索引,但 UNION 是用一个明确的值到索引中查找...,目标非常明确,OR 需要对比两个值,目标相对要模糊一些,所以 OR 在恍惚中落后了

6.2K100
  • Fresco急速入门及最最最简单使用教程,是时候来了解Fresco了!

    在本教程中,您将学习如何使用fresco android图像库。 Fresco是由Facebook开发人员创建的图像库,可用于显示来自互联网或本地存储的图像。...下面我用一个简单的例子展示了这个库的用法。 ---- Fresco Android教程 使用包名com.frescoandroid创建一个android studio项目  。...因为我将从互联网加载图像,所以在 AndroidManifest.xml 中添加互联网访问权限。 ---- activity_main.xml中 \ 为了显示图像,我们在布局文件中使用   元素。...还可以通过添加xmlns来提及顶级元素中的自定义命名空间  :fresco =“http://schemas.android.com/apk/res-auto” 属性。...Uri uri = Uri.parse(url); image.setImageURI(uri); } } 要显示图像,您只需使用setImageURI()方法在

    1.1K20

    Android项目实战(三十):Fresco加载gif图片并播放

    (当然这个需求不是这个功能) 怎么解决呢:一确定这个需求我的第一实现思路便是让美工给我搞几个连续的图片,我使用帧动画来轮回播放 便实现了这个动画。...但是帧动画使用起来太复杂了,一套动作我要搞好久来实现。那么就想Android中支持不支持播放gif格式的图片呢,让美工搞动态图我直接拿来用多方便。...Fresco 中设计有一个叫做 Drawees 模块,方便地显示loading图,当图片不再显示在屏幕上时,及时地释放内存和空间占用。...特性之一: 支持 gif 动态图片     ,也许我们会构造一些自定义的类来实现,但是太复杂了,也太麻烦了,Fresco直接帮你封装好了 --------------------------------...(Uri uri) { 63 this.setImageURI(uri, (Object)null); 64 } 65 66 public void setImageURI

    2.3K80

    Glide、Picasso和Fresco

    2.Glide加载的图片质量要差于Picasso,但几乎难以分辨,而且Glide的加载速度更快,但也需要更大的空间来缓存。...(最近项目中用Picasso加载了一张4209*4209的图片(我也不知道什么鬼...),根据网速的不同,页面绘制完成之后,图片要等1到3秒,而且滑动相当卡顿,换成Glide之后瞬间流畅。。)...原因在于Picasso是加载了全尺寸的图片到内存,然后让GPU来实时重绘大小。而Glide加载的大小和ImageView的大小是一致的,因此更小。...' 下面的依赖需要根据需求添加: dependencies { // 在 API < 14 上的机器支持 WebP 时,需要添加 compile 'com.facebook.fresco:animated-base-support...(uri); 剩下的,Fresco会替你完成: 显示占位图直到加载完成; 下载图片; 缓存图片; 图片不再显示时,从内存中移除; 等等等等。

    58720

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

    一.ImageView基本介绍  在 Android 应用开发中,我们通常使用 ImageView 来显示图片。...imaegView.setImageBitmap();  imaegView.setImageResource();  imaegView.setImageDrawable();  imaegView.setImageURI...Fresco:最大的又是在于5.0以下(最低2.3)的Bitmap加载。在5.0以下系统,Fresco将图片放到一个特别的内存区域(Ashmem区)。当然,在图片不显示的时候,占用的内存会自动被释放。...为什么说5.0以下呢?因为在5.0系统以后系统默认就是存储在Ashmem区了。...优点: 1.图片存储在安卓系统的匿名共享内存,而不是虚拟机的堆内存中,图片的中间缓冲数据也存放在本地堆内存,所以,应用程序有更多的内存使用,不会因为图片加载而导致oom,同时也减少垃圾回收器频繁回收Bitmap

    1.3K30

    Android图片加载开源库深度推荐,安利Fresco1、Universal-Image-Loader2、Picasso3、Glide4、Fresco

    这里没有广告,这里没有跑分,数据对比Google一下比比皆是,额···那我说什么好(ノಠ益ಠ)ノ彡┻━┻。 对啊,女朋友···呸呸呸,那么就来讲一讲用哪些库好(你应该已经在知道了)。...为什么着重推荐这个,因为如果是用的是圆形的ImageView或者特殊裁剪的什么,那么很可能会有问题。 什么问题?反正大家都这么说的 ,用这库就对了。 ?...setTag要使用SimpleTarget或者继承GlideModule,可以配置成OKHttp来替代请求等等等等等。 聪明的你一定知道了,因为我要说Fresco,那么为什么不用Glide了呢?...的初始化要写在Applicantion里,一定要打开DownsampleEnabled来让图片压缩,不然全图展示超大的图片还是会有OOM,如果用了这个,在底层Fresco就帮助你调整好了,回调给你的图片比例采样后一定不会...(this, config); Fresco在列表加载中一定要加上Resizing 来减少内存的开销,如果有必要,还可以在滑动的时候做优化处理。

    1.5K20

    Universal-Image-Loader,android-Volley,Picasso、Fresco和Glide图片缓存库的联系与区别

    , listener); volley Volley提供了一个新的控件NetworkImageView来代替传统的ImageView,这个控件的图片属性可以通过. mImageView.setImageUrl...(url, imageLoader)来设定。...其他:Fresco 中设计有一个叫做 image pipeline 的模块。它负责从网络,从本地文件系统,本地资源加载图片。...Fresco 中设计有一个叫做 Drawees 模块,方便地显示loading图,当图片不再显示在屏幕上时,及时地释放内存和空间占用。...在5.0以下,GC将会显著地引发界面卡顿。 在5.0以下系统,Fresco将图片放到一个特别的内存区域。当然,在图片不显示的时候,占用的内存会自动被释放。

    1.3K70

    WordPress 教程:函数和接口被弃用之后,怎么提示?

    WordPress 提供了下面这些函数来提示开发者,作为插件开发者,如果在弃用自己的插件中的一些函数、方法和接口的时候,也可以使用 WordPress 这些弃用提示方法。...请使用 apply_filters_deprecated 代替 apply_filters,apply_filters_deprecated 会触发一个该 filter hook 被弃用的通知,然后调用原来的...一样,只是它是用来弃用 action hook 的,一样也是使用 do_action_deprecated 代替 do_action,do_action_deprecated 会触发一个该 filter...比如我原先写了一个函数 wpjam_is_mobile 用来判断当前环境是不是在浏览器中,后来发现 WordPress 内置的 wp_is_mobile 一模一样,所以就可以弃用他: function...,请使用ignore_sticky_posts代替'); if ( !

    46830

    【React】345- React v16.9 新特性

    点击此链接,学习更多关于 版本策略以及稳定性承诺 弃用:javascript: URLs 以 javascript: 开头的 URL 很容易遭受攻击,因为它很容易意外在标签中()引入未经处理的输出...React 16.9 中,这种模式将继续有效,但它将输出一个警告,如果你逻辑上需要使用 javascript: 开头的 URL,请尝试使用 React 事件处理程序代替。...在未来的主要版本中,如果遇到 javascript: 形式的 URL,React 将抛出错误。...(函数组件只会返回像上述示例中的 )。 这种模式几乎从未在外部使用过,并且支持它会导致 React 变大、变慢。因此,我们在 16.9 中弃用此模式,并且遇到时,输出警告。...三、显著的 bug 修复 此版本包含一些一些其他显著的提升: 在 组件中调用 findDOMNode() 造成崩溃,已修复 保存已删除的子树导致内存泄漏,已修复 在 useEffect 中,使用 setState

    2.4K40

    我可以弃用这个端点吗?

    你被要求弃用/v1/catalog 端点而使用新的/v2/catalog 端点。你该怎么做呢?...在弃用该端点之前,首先需要检查该端点是否正在实际使用。 搜索代码库 对于内部端点,一个很好的开始方法是在代码库中搜索对 API 的调用。...请注意,在你从代码库中删除所有 API 调用之后,公司协议可能会要求你在关闭端点之前等待几个版本。大多数已建立的公司都有其微服务 API(甚至内部 API)的向后兼容性标准。...开发者不喜欢意外的弃用,所以最好以多种方式通知他们,包括: 文档:更新参考文档以防止新用户使用已弃用的 API。 Slack/电邮通知:告诉现有用户如何以及何时迁移。...一旦你尽了最大努力将剩余的客户端从已弃用的 API 中迁移出去,就该关闭端点了。消灭了技术债务! 对教程感兴趣?学习[4]如何运行这篇文章中包含的脚本。

    1.7K10

    Picasso,Glide,Fresco对比分析

    缓存图像大小 Glide则会根据ImageView控件尺寸获得对应的大小的bitmap来展示,从而缓存也可以针对不同的对象:原始图像(source),结果图像(result) 缓存原始图像 加载策略 Glide...只有占位图 先加载小尺寸图片,再加载大尺寸的 加载进度 false true 从上面的对比中可以看出来Fresco蛮强大的,不过使用起来相对Glide要复杂一点,而且需要自己的SimpleDraweeView...,这一点在切换框架的时候最让人头疼了。...实际项目中会获取缓冲的文件对象: //同样在DataSubscriber中获取 FileBinaryResource resource = (FileBinaryResource) Fresco.getImagePipelineFactory...在5.0以下系统,Fresco将图片放到一个特别的内存区域(Ashmem区) 大大减少OOM(在更底层的Native层对OOM进行处理,图片将不再占用App的内存) 适用于需要高性能加载大量图片的场景

    4.8K20

    我的Vue不小心跨域了o(╥﹏╥)o 干它

    这个文件里面具体配置有什么,这里给大家官网的地址: https://cli.vuejs.org/zh/config 官网中详细介绍了每一个参数的配置,当然我们需要什么就可以拿什么参数来配置。...//baseUrl 从 Vue CLI 3.3 起已弃用,请使用publicPath //baseUrl: process.env.NODE_ENV === "production" ?...在proxy字段中target就是我们要跨域的url,pathRewrite中的^/apis,就是来替代target中你所填写的url,什么意思呢?可以继续看下面。 this....也就是说apis将target中的url代替了,这样就能够让vue知道你这里需要用到代理的方式。 其实到了这里跨域的问题已经解决了,你再次请求的时候会发现没有报跨域的错误。...这里你可能需要通过axios设置拦截器来解决这个问题: 在你的main.js中,设置如下: import Vue from 'vue' import App from '.

    1.1K20

    flink on yarn的一则jar冲突问题,你遇到过没?

    显然,我们没有对这个参数进行手动配置,那么为什么没有用500作为默认值呢?下面我们来分析一下。...分析 首先在实时计算平台使用yarn client进行任务提交时从来没有出现过这个异常,但是在这里使用yarn client手动提交时却出现了异常,这是什么原因呢?...的值时取到的不为空,导致默认填充值500没有生效,那么会不会是两个地方使用的YarnConfiguration中获取的值不同呢?...如果该key已弃用,它将返回取代已弃用的key所对应的那个key所对应的值。...方法内部会先查找当前需要查找的key是不是在被废弃上下文列表中,如果不在列表中但直接返回原始key值;如果在废弃列表中,则返回代替废弃key的新key。

    1.7K10
    领券