如何在Android中将字体粗细设置为轻量级,常规

时间:2015-08-11 16:28:24

标签: android uitextview textview

我有3个文字视图。 我需要将它们的重量设置为Light,Regular和Condensed。 有人可以帮我解决如何在Android中实现这一目标吗?

3 个答案:

答案 0 :(得分:50)

android:textStyle上使用TextView设置文字样式,如粗体斜体或正常。

以下是TextView的示例,其中包含粗体文字样式:

<TextView
  android:id="@+id/hello_world"
  android:text="hello world"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:textStyle="bold"/>

如果您想使用灯光或浓缩,则必须更改字体。你可以这样做:

android:fontFamily="sans-serif-light"

有关字体的更多信息,请同时查看以下答案Valid values for android:fontFamily and what they map to?

答案 1 :(得分:0)

如果您引用的字体允许这些样式,则只能将TextView显示为Light,Regular和Condensed。

例如,如果您将字体导入项目并且它没有Light或Condensed,我不会认为它(我敢说)可以使文本显示为TextView中的那种风格。如果您要导入自己的字体,请以编程方式使用它,例如在您的活动中声明一个全局TextView:

private TextView tv;

然后在onCreate()中,引用保存在/ assets中的字体文件:

Typeface someFontName-condensed = Typeface.createFromAsset(getAssets(), "assets/NameOfFont-condensed.ttf");

tv = (TextView) findViewById(R.id.myTextViewId);
tv.setTypeface(someFontName-condensed);

请注意,我导入了我的字体文件的压缩版本(如.ttf),而不是打包字体.ttc。您可以引入各种样式的字体,但是您应该将它们作为单独的.ttf文件而不是一个打包文件引入,因为您需要引用特定样式.ttf。

但是,如果您使用的系统字体允许您引用xml中的各种样式,请参阅此处的内容:

Valid values for android:fontFamily and what they map to?

正如他们所说,对于像Roboto这样的东西,你将使用fontFamily。

答案 2 :(得分:-4)

使用:android:textStyle为文本视图添加样式。

示例:

 <TextView
  android:id="@+id/test"
  android:text="test"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:textStyle="italic"/>

这将使文字斜体