gpt4 book ai didi

android - LRUCache BitmapDrawable

转载 作者:行者123 更新时间:2023-11-29 23:53:10 24 4
gpt4 key购买 nike

我正在使用 LruCache 来缓存我的应用程序中使用的大量小 BitmapDrawables。问题是尺寸因我使用图像的不同位置而异。

我在从缓存中检索可绘制对象时设置边界,然后再将其设置为 ImageView 以具有正确的大小。

当我设置边界时,drawable 也会在其他地方调整大小。

如何在不使用 drawable.getConstantState().newDrawable() 的情况下解决这个问题?滚动 ListView 时,从缓存的可绘制对象创建新可绘制对象的速度非常慢。

在 DynamicDrawableSpans 中使用了相同的图像,我无法在跨度本身上设置边界,只能直接在可绘制对象上设置边界。

在单独的缓存中为不同的上下文缓存相同的可绘制图像是否明智?

最佳答案

我让它正常工作。

我将 LruCache 类型从 BitmapDrawable 更改为 Bitmap。这样缓存只存储位图图像而不存储可绘制边界。

当我想设置位图时,我将其转换为 BitmapDrawable

Drawable d = new BitmapDrawable(getResources(), bitmap);

然后我为新创建的 drawable 实例设置边界

d.setBounds(0, 0, sizex, sizey);

这样,Bitmap 的每个实例都是一个单独的 Drawable,具有自己的边界。

关于android - LRUCache BitmapDrawable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50677972/

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