我试图在整个应用程序中使用Roboto字体。创建字体对象并将其应用于所有需要工作的字段,但由于每个TextView上的字段的数量都在增加,所以很乏味,Button会降低性能。我试图在他们大多数在互联网上提出的配置,但我不能使用Roboto。我被认为是“无衬线光”。
请建议采用哪种方法。
发布于 2014-04-29 11:19:27
创建一个类,
public class CustomTextView extends TextView {
static Typeface Roboto_Bold = Typeface.createFromAsset(Global.mainActivity.getAssets(), "Roboto-Bold.ttf");
static Typeface Roboto_Regular = Typeface.createFromAsset(Global.mainActivity.getAssets(), "Roboto-Regular.ttf");并在构造函数中添加下面的代码,在整个应用程序中使用CustomTextView而不是TextView
try {
int style = getTypeface().getStyle();
if (style == (Typeface.BOLD)) {
isBold = true;
}
} catch (Exception e) {
e.printStackTrace();
}
if (isBold)
this.setTypeface(Roboto_Bold);
else
this.setTypeface(Roboto_Regular);-更新,
我最近发现自定义字体将以巨大的内存消耗存储在本机内存中。因此,在自定义TextView类中创建字体将在很大程度上填充本机内存(在我的例子中为300 Mb ),这取决于创建TextView实例的数量。
因此,最好创建一个TextView引用的静态字体对象,从而减少内存消耗(在我的例子中是20 Mb )。
如果您有多个自定义视图使用字体,请考虑全局静态字体
https://stackoverflow.com/questions/20095463
复制相似问题