【问题标题】:Image quality loss in GalleryView when using Lazy Loader in Android在 Android 中使用 Lazy Loader 时 GalleryView 中的图像质量损失
【发布时间】:2012-11-07 10:36:26
【问题描述】:

我在我的 android 应用程序中使用 Gallery View。所有图像都来自 url,所以我使用 LazyLoader 在 GalleryView 中进行图像加载。画廊完全填充。但它失去了图像质量..我想在不丢失图像质量的情况下填充画廊..请帮助我..

【问题讨论】:

    标签: android lazy-loading image-gallery android-gallery image-quality


    【解决方案1】:

    如果您在谈论 Fedor 的延迟加载,解决方案就在这里:

    //Find the correct scale value. It should be the power of 2.
    final int REQUIRED_SIZE=70;
    int width_tmp=o.outWidth, height_tmp=o.outHeight;
    int scale=1;
    while(true){
        if(width_tmp/2<REQUIRED_SIZE || height_tmp/2<REQUIRED_SIZE)
            break;
        width_tmp/=2;
        height_tmp/=2;
        scale*=2;
    }
    

    这是从第 96 行到第 106 行:https://github.com/thest1/LazyList/blob/master/src/com/fedorvlasov/lazylist/ImageLoader.java。我正在链接这个,以便您可以从源代码中检查代码并与您的代码进行比较。

    您需要在此处更改此位:final int REQUIRED_SIZE=70。请注意,这个数字需要 2 的幂。使用默认值 70,您将获得小图像,当用于需要显示更大图片的应用程序时,它们看起来会失真。反复尝试,直到您对结果感到满意为止。

    这应该对你有用。

    【讨论】:

    • +1。此外,修改它非常简单,这样您就可以在调用 displayImage 时传递所需的大小值 - 这样您就可以在需要时将它用于整个应用程序的不同图像加载需求。我还想宣传 Nostra 的版本(我认为它基于 Fedor 的原版)github.com/nostra13/Android-Universal-Image-Loader,因为它对我的项目有很大帮助。它有一种内置方法可以轻松调整显示图像的设置
    • Thanx .. 我只删除了 while 循环。问题解决了.. :)thanx
    • @JosephusVillarey:我也听说过关于 Nostra 的 Universal Loader 的好消息。我一直想试一试。但不能玩生产版本。 ;-)
    • @Addon_Android:很高兴能帮上忙。 :-)
    • 如果我增加 REQUIRED_SIZE 会发生什么?如果我将 REQUIRED_SIZE 更改为 256 会有什么问题吗?会不会有任何与内存相关的问题或其他问题?
    猜你喜欢
    • 1970-01-01
    • 2012-10-08
    • 2012-06-22
    • 1970-01-01
    • 2015-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多