- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
在过去的几个小时里,我正在浏览一些 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
参数为 null
或 Typeface.createFromAsset
返回 null,请记住添加一个检查以返回默认字体
。
关于android - ListView优化: Typeface makes listview very laggy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14194086/
在我的应用程序中,我有一个 textView,用户可以在其中设置字体和字体样式。我正在使用这一行来设置字体。 tvQuoteTextSample.setTypeface(Typeface.SERIF)
字体始终显示默认字体。 我的字体存储在 Assets /字体中。我尝试过使用其他字体,并重新编码字体。 PixlUI 库也没有解决问题。 MainActivity.java protected voi
在我的应用程序中,我从服务器动态下载字体并将它们保存到数据库中。有什么方法可以从 db 中的 blob 创建 Typaface 吗?当然我可以创建临时文件并从中加载数据,但这不是最好的方法 最佳答案
鉴于以下 react 代码: import React, { Component } from 'react'; import ReactDOM from 'react-dom'; import 't
我已经使用 Typeface.js 转换了一些字体,默认字体 Century Gothic 工作正常。但是现在我正在尝试使用我上传的 Century Gothic Bold,但我不知道确切的名称是什么
我正在制作必须以“NASTALIQ.TTF”字体显示文本的 Android 应用程序。我将字体 ttf 文件放在项目的以下目录中: C:\Users\Zeeshan\AndroidStudioProj
简单的问题:Typeface.createFromAsset() 是否缓存?还是我应该在内存中保留一个引用以方便使用?我问的原因是因为我经常使用它(都是为了在许多 Activity/ View 中维护
我使用自定义字体绘制( Canvas )文本(准确地说:我使用自定义字体)。然而,这种字体不支持很多字符,因此一些(不受支持的)字符看起来不同。现在我问自己以下问题: 不受支持的角色看起来如何 - 外
在开始 Activity 中,我调用 FontFactory.init(getApplicationContext()); 将 Context 设置为 FontFactory 类。 我还有扩展 Tex
我正在尝试在我的 NotificationCompat.Builder 中添加一个 Typeface ->setContentTitle() 和 setContentText()。我通过 初始化了 T
我想更改对话框中 textview 中的字体: dialog = new Dialog(MyActivity.this); dialog.setContentView(R.layout.my_dial
如何在 NumberPicker 中更改字体类型。我尝试这样做,但字体没有改变。任何想法?P.S: color 和 textSize 有变化。 public class NumberPicker ex
我正在尝试在 ListView 的元素上使用自定义字体。所以在我的 ListViewAdapter 构造函数中我有: private Context context; private List pro
Typeface 类包含一个静态的 findFromCache 方法: https://android.googlesource.com/platform/frameworks/base/+/refs
我的应用程序因以下代码而崩溃。我正在尝试在 textView 中提供自定义字体。 Assets 目录没问题,因为我已经仔细检查过了。 @Override protected void onCreate
所以我有这个界面: public interface Utils{ static final Typeface FONT = Typeface.createFromAsset(getAsset
我在整个应用程序中都使用 Helvetica 字体。目前我正在与 Assets 分开创建字体。所以我说了这三个 HelveticaNeue = Typeface.createFromAsset(app
我想将 TextView 上的第一个字符设置为 TypeFace,将第二个字符设置为不同的 Type face,依此类推。 我读了这个例子: Spannable str = (Spannable) t
我正在尝试使用我在互联网上找到的字体,但问题是我得到了一个带有“无法制作原生字体”的 FC。 这是我的 ListVIew 的 getView 中的代码: holder.tv_SuraN
我有一个应用程序可以更改某些元素的字体。它适用于大多数人,但可能有 0.5% 的人在尝试更改字体时会出现异常。堆栈跟踪的重要部分是: Caused by: java.lang.RuntimeExcep
我是一名优秀的程序员,十分优秀!