gpt4 book ai didi

android - ListView优化: Typeface makes listview very laggy

转载 作者:太空狗 更新时间:2023-10-29 15:35:06 25 4
gpt4 key购买 nike

在过去的几个小时里,我正在浏览一些 ListView 优化,但我没有成功解决我滞后的 ListView ,所以我开始逐行将我的代码恢复到更早和更简单的版本以找出问题。因此,我使用包含 ImageView 和两个 TextView 的自定义适配器填充 ListView 。从项目中删除图像后,我的 ListView 仍然很慢然后猜猜是什么:如果我删除 TextView 的自定义字体,我的延迟就消失了。我使用简单的 Calibri,它是一种内置字体,所以我不明白为什么它会减慢我的 ListView 。有什么建议可以解决这个问题吗?

//viewHolder.text_tt.setTypeface(Typeface.createFromAsset(getActivity().getAssets(), "fonts/CALIBRI.TTF")); 
//viewHolder.text_ttd.setTypeface(Typeface.createFromAsset(getActivity().getAssets(), "fonts/CALIBRI.TTF"));

viewHolder.text_tt.setText(textNames[position]);
viewHolder.text_ttd.setText("Item " + position);

最佳答案

原因是因为从 Assets 创建字体非常繁重。我更喜欢像这样使用 TypefaceCache..

public class TypefaceCache {

private static final Hashtable<String, Typeface> CACHE = new Hashtable<String, Typeface>();

public static Typeface get(AssetManager manager, String name) {
synchronized (CACHE) {

if (!CACHE.containsKey(name)) {
Typeface t = Typeface.createFromAsset(manager, name);
CACHE.put(name, t);
}
return CACHE.get(name);
}
}

}

这样,一个 Typeface 将只创建一次,不需要每次都重新创建。

如果 name 参数为 nullTypeface.createFromAsset 返回 null,请记住添加一个检查以返回默认字体

关于android - ListView优化: Typeface makes listview very laggy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14194086/

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