gpt4 book ai didi

java - Fresco - setDownsampleEnabled 真/假?

转载 作者:行者123 更新时间:2023-12-02 12:05:40 24 4
gpt4 key购买 nike

我正在使用Fresco在我的应用程序中和 initialize像这样:

    DiskCacheConfig diskCacheConfig = ...

ImagePipelineConfig imagePipelineConfig = ImagePipelineConfig.newBuilder(this)
.setMainDiskCacheConfig(diskCacheConfig)
.build();

Fresco.initialize(this, imagePipelineConfig);

它在所有情况下都工作正常,但有一种情况除外:“大图像的巨大列表”可 ScrollView 。 (在这种情况下真的很慢)。

我阅读了有关 resizing 的文档然后使用 setDownsampleEnabled(true)

更改 Fresco 初始化
    ImagePipelineConfig imagePipelineConfig = ImagePipelineConfig.newBuilder(this)
.setMainDiskCacheConfig(diskCacheConfig)
.setDownsampleEnabled(true) // faster for downsampling of big images
.build();

Fresco.initialize(this, imagePipelineConfig);

对于这个“大图像的巨大列表” View 来说效果很好...但对于其余的结果却很差,特别是当我全屏显示图像时。图像有点“模糊”,请参阅 this post .

问题:

是否可以仅对我的应用程序的“部分”使用 setDownsampleEnabled(true) ?我希望所有应用程序都采用“标准”设置,但“大量大图像列表”除外,我需要 setDownsampleEnabled(true)

也许有一种方法可以使用 ImagePipelineConfig 进行配置...?

坦白说,目前的情况已经差不多了,所以这没什么大不了的,但我想知道是否可以,然后测试看看结果。

注意:

我深入研究了 Fresco 代码并看到了这个:

package com.facebook.drawee.backends.pipeline;
...
public class Fresco {
...
public static void initialize(Context context, @Nullable ImagePipelineConfig imagePipelineConfig, @Nullable DraweeConfig draweeConfig) {
if(sIsInitialized) {
FLog.w(TAG, "Fresco has already been initialized! `Fresco.initialize(...)` should only be called 1 single time to avoid memory leaks!");
} else {
sIsInitialized = true;
}
...
}
...

“内存泄漏”..哇..

所以我不敢调用 Fresco.initialize(...) 两次,一次是在我的应用程序中调用,第二次是在我的 Activity 中显示完整列表。

我应该做什么?

谢谢。

配置:(最新)Fresco 1.5.0

最佳答案

不幸的是,Fresco 目前不支持更改下采样配置。改变这一点需要进行一些内部改变。请随意发送拉取请求来添加此功能:)

关于java - Fresco - setDownsampleEnabled 真/假?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46926826/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com