2012-11-04 68 views
6

我试图在TextView上使用自定义字体。该TextView文本设置与textView1.setText(Html.fromHtml(htmlText));Html在文本视图中用粗体和斜体的不同字体

HTML中包含粗体和斜体跨越

现在。我购买了一种自定义字体。字体带有3个不同的文件(ttf)。一个用于规则,一个大胆和斜体。

如何将这三个字体文件应用于textview?

回答

2

此链接将帮助您了解如何定制的Android字体:http://mobile.tutsplus.com/tutorials/android/customize-android-fonts/

在它涉及如何将这些字体文件适用于TextView的,你需要将它们在你的项目中第一个整合:

Typeface tf = Typeface.createFromAsset(this.getAssets(), 
     "fonts/xxx.TTF"); 
txt1.setTypeface(tf); 

的TTF文件应该被放置在 - >资产/字体/ xxx.TTF

所有需要的信息都在段落:“使用自定义字体”

+1

使用包含不同样式(常规,粗体,斜体等)的单个字体文件很容易。问题在于每种样式在不同文件中的字体(即font_regular.ttf,font_bold.ttf,font_italic.ttf)。使用'setTypeface'只能设置一个字体,因此只能使用一种样式。什么[Eli Konky](http://stackoverflow.com/users/102092/eli-konky)和我需要的是在单个TextView中使用多个字体文件。 – suda

+1

根据此:http://stackoverflow.com/questions/10191510/android-combining-multiple-font-styles-into-one-single-font-typeface和事实setTypeface()将取代默认的ttf文件,由android使用,由您的自定义ttf文件:唯一的方法(目前)使用不同的字体为单个文本视图是手动合并这些字体在一个ttf文件。这可以通过使用字体编辑器来完成(如http://sourceforge.net/projects/ttfedit/)。希望能帮助到你。 –

+2

我看不到在TTFEdit(或我测试过的任何其他字体编辑软件)中合并两个文件的选项。有问题关于合并字体文件:) – suda

0

我想你想对代码做一个快速重构来整合资产。

我会扩展TextView并尝试解析HTML并在onDraw中应用正确的字体。

替代setText并解析创建字符的Map和适当的字体的参数。

然后,覆盖onDraw并在绘制之前,根据您在上一步创建的地图更改super.getPaint()的字体。

该代码应该看起来像onDraw方法中提供的代码How to correctly draw text in an extended class for TextView?,但是您将设置以前确定的字体而不是应用super.getTypeface()

希望它可以帮助你

0

你有没有尝试与应用,所有的字体相同的TextView的文本逐一。 我认为你可以将更多的效果应用于同一个TextView。

米洛斯的代码是正确的。除此之外,我还引用了我自己的解释。 您可以将字体添加到资产foldera中,然后您可以将该字体逐个应用于textView。

不确定但可能对您有用。

我的代码:

Typeface font1 = Typeface.createFromAsset(getAssets(), "YOUR_FONT1.ttf"); 
Typeface font2 = Typeface.createFromAsset(getAssets(), "YOUR_FONT2.ttf"); 
Typeface font3 = Typeface.createFromAsset(getAssets(), "YOUR_FONT3.ttf"); 

chips_text.setTypeface(font1); 
chips_text.setTypeface(font2); 
chips_text.setTypeface(font3); 

随意评论和查询。

+0

是的,我做到了。不幸的是,每次调用setTypeface都会覆盖前一个。 – suda

+0

好的,你必须跟随米洛斯的回答。您必须创建一个包含所有您想要的东西的字体,然后将其设置为指定的视图。 –

相关问题