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

如何在Android中将字体设置为轻量级、常规字体,android,uitextview,textview,Android,Uitextview,Textview,我有3个文本视图。 我需要将它们的重量设置为轻、规则和浓缩。 有人能帮我在安卓系统中实现这一点吗?在TextView上使用Android:textStyle设置文本样式,如粗体、斜体或普通 以下是带有粗体文本样式的文本视图的示例: <TextView android:id="@+id/hello_world" android:text="hello world" android:layout_width="wrap_content" android:layout_heigh

我有3个文本视图。 我需要将它们的重量设置为轻、规则和浓缩。
有人能帮我在安卓系统中实现这一点吗?

TextView
上使用
Android:textStyle
设置文本样式,如粗体、斜体或普通

以下是带有粗体文本样式的
文本视图的示例:

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

有关字体的详细信息,请参阅以下答案。如果您所引用的字体允许使用这些样式,则只能将文本视图显示为浅色、常规和浓缩

例如,如果您将字体导入到项目中,但它没有灯光或压缩,我认为(我敢说)不可能在您的文本视图中以该样式显示文本。如果要导入自己的字体,请以编程方式使用它,例如在活动中声明全局文本视图:

private TextView tv;
然后在onCreate()中,引用保存在/assets中的fontfile:

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

tv = (TextView) findViewById(R.id.myTextViewId);
tv.setTypeface(someFontName-condensed);
请注意,我导入了字体文件的压缩版本(作为.ttf),而不是打包的font.ttc。您可以引入字体的各种样式版本,但应将它们作为单个.ttf文件而不是一个打包文件引入,因为您需要引用特定的.ttf样式

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

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

可能重复的
Typeface someFontName-condensed = Typeface.createFromAsset(getAssets(), "assets/NameOfFont-condensed.ttf");

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