我想将自定义字体添加到扩展BaseAdapter的Adapter中的按钮(LetterBtn),但我在getAsset()中收到一个错误,即“无法解析方法'getAsset()'”。
字体位于资产/字体/文件夹中,在我的其他活动中可以正常工作。
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Button letterBtn;
if (convertView == null) {
letterBtn = (Button)letterInf.inflate(R.layout.letter, parent, false);
} else {
letterBtn = (Button)convertView;
}
letterBtn.setText(letters[position]);
Typeface font1 = Typeface.createFromAsset(getAssets(),
"fonts/nexalight.otf");
letterBtn.setTypeface(font1);
return letterBtn;
}
您可以从视图的上下文中获取资产。您应该考虑的另一个优化是在适配器级别保存字体,以便可以重用它,而不是每次都从文件中加载它。
尝试以下操作:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Button letterBtn;
if (convertView == null) {
letterBtn = (Button)letterInf.inflate(R.layout.letter, parent, false);
} else {
letterBtn = (Button)convertView;
}
letterBtn.setText(letters[position]);
Typeface font1 = Typeface.createFromAsset(letterBtn.getContext().getAssets(), "fonts/nexalight.otf");
letterBtn.setTypeface(betuTipus1);
return letterBtn;
}
使用
context.getAssets()
在适配器中,它将工作。
Typeface mTypeface = Typeface.createFromAsset(context.getAssets(), "HelveticaNeueLTStd55 Roman.ttf");
我认为您在适配器类中面临着这个问题。更新适配器类,如下所示:
....................
................................
public class YourAdapter extends ......
{
.........
..............
Typeface font;
public YourAdapter(Context context, ...........)
{
super(context, ..........);
font = Typeface.createFromAsset(context.getAssets(), "fonts/nexalight.otf");
}
...............
........................
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = letterInf.inflate(R.layout.letter, parent, false);
}
Button letterBtn = (Button ) convertView.findViewById(R.id.YOUR_BUTTON_ID);
letterBtn.setText(letters[position]);
letterBtn.setTypeface(font);
return convertView;
}
...................
.........................
}
我必须将自定义方法方法添加到我的日志系统中。假设我有几行代码,例如: 日志记录由slf4j处理。如何通过添加新(!)扩展我的记录器方法,如public void error(SomeTypeObject obj){/implementation/} 目标是不更改现有代码。如何强制LoggerFactory返回使用上述方法扩展的自己的记录器实现? 我跟踪了这个问题的答案:stackoverflow.
问题内容: 在Ruby中,您可以使用自定义方法覆盖任何内置对象类,如下所示: 我如何在python中做到这一点?有正常的方法还是黑客? 问题答案: 您不能这样做,因为内建类型是用C编码的。您可以对类型进行子类化: 测试: 您还可以使用来覆盖str-type ,但这并不意味着您可以使用文字,因为它链接到内建的。
本文向大家介绍Android使用自定义字体的方法,包括了Android使用自定义字体的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Android使用自定义字体的方法。分享给大家供大家参考,具体如下: 一、问题: 作为android初学者,在做一个游戏,游戏的标题我用的是TextView,android只提供斜体粗体,但把字体设置成楷体游戏的界面会更好,怎么才能实现。 二、解决方法:
我正在尝试将添加到 Devise,但是当我注册一个新用户时,当我推送提交时它会中断。 我已确保运行< code>rake db:migrate并重新启动了我的服务器,但我得到了以下错误: ActiveRecord::StatementInvalid in Devise::RegistrationsController#create NoMethodError: nil:NilClass 的未定义方
问题内容: 我必须在Java中使用自定义日期格式。尽管Java不提供对微秒的支持,但它包含微秒。因此,我用零填充了时间模式,在格式化时它可以很好地工作,但是我无法使用该模式解析日期字符串。 有没有简单的解决方法,还是我必须自己处理微秒(使用String函数)? java.text.ParseException:无法解析的日期:“ 2010-01-25-12.40.35.769000” 问题答案:
我的工具基本上读取PDF并在JTextArea中打印PDF的内容。在我的PDF包含阿拉伯语的PH Mirjan字体之前,一切正常。我的文本区域显示一些垃圾字符,如下所示。 我该如何解决这个问题? 我的文本区域的默认字体是Arial Unicode MS。我可以配置文本区域的字体吗?假设我在本地下载了PH Mirjan,如何将文本区域字体更改为下载的字体。非常感谢任何建议或参考链接。 编辑 这给了我