我有3个文字视图。 我需要将它们的重量设置为Light,Regular和Condensed。 有人可以帮我解决如何在Android中实现这一目标吗?
答案 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"/>
这将使文字斜体