Android ListView 中的自定义字体
我在整个应用程序中使用自定义字体(顺便说一句,我令人沮丧地发现您必须以编程方式手动应用到每个控件!),并且我需要将其应用到列表视图。问题是我看不到在哪里将列表字体中使用的文本视图设置为我的自定义字体(因为我从未实例化它 - 这都是由适配器处理的)。
我理想的情况是能够使用这样的适配器:
new ArrayAdapter(Context context, TextView textView, List<T> objects)
这样我就可以在填充我的列表之前执行 textView.setTypeface 。有谁知道是否有办法按照这些方式做一些事情?
I'm using a custom font throughout my application (which, incidentally, I've frustratingly found out that you have to apply programmatically by hand to EVERY control!), and I need to apply it to a listview. The problem is that I can't see where I'd set the textview used in the list's font to my custom font (as I never instantiate it - that's all taken care of by the adapter).
What I'd ideally like is to be able to use an adapter like this:
new ArrayAdapter(Context context, TextView textView, List<T> objects)
That way I could do: textView.setTypeface before populating my list. Does anyone know if there's a way to do something along these lines?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
如果您不想创建新类,则可以在创建适配器时重写 getView 方法,这是一个带有标题和副标题的简单适配器的示例:
其中 items 是您的地图 ArrayList
希望有所帮助
If you don't want to create a new class you can override the getView method when creating your Adapter, this is an example of a simpleAdapter with title and subtitle:
where items is your ArrayList of Maps
hope that helps
您不能这样做,因为您传递给 ArrayAdapter 的文本视图资源在每次使用时都会膨胀。
您需要创建自己的适配器并提供自己的视图。
您的适配器的一个示例可以是
}
然后您可以将其设置为这样
希望这应该能让您继续下去。
You can't do it that way because the text view resource you pass to the ArrayAdapter is inflated each time it is used.
You need to create your own adapter and provide your own view.
An example for your adapter could be
}
And then you could set that as such
Hopefully that should get you going.
看起来构造函数是错误的,
将其更改为:
它对我来说效果很好。
Looks like the constructor is wrong
change it to:
it worked well for me.
对 arrayadapters 尝试这样::
Try like this for arrayadapters::
除了 Moisés Olmedo 的回应之外 - 不创建新类的替代变体:
In addition to the response of Moisés Olmedo - an alternative variant without creating a new class:
首先将字体文件复制并粘贴到 asset/fonts 文件夹中。
然后识别文本视图。
First copy and paste the font files into assets/fonts folder.
Then identify the textview.
您可以像下面的步骤一样设置基本适配器可能会帮助您
通过 TypeFace 方法定义您的基本适配器
您可以通过在资产中添加文件夹“字体”来设置字体,然后在“字体”文件夹中添加您的字体
,然后设置您的适配器
You can Set base Adapter like follow Steps May be help you
Define your Base Adapter
by TypeFace Method you can set your font by add folder 'Fonts' in Assets then add your font in 'Fonts' Folder
then to set your adapter
holder.txt_name.setTypeface(Typeface.createFromAsset(activity.getAssets(), "font/nasimbold.ttf"));
holder.txt_name.setTypeface(Typeface.createFromAsset(activity.getAssets(), "font/nasimbold.ttf"));