我想展示Arial字体的文本。但是Android系统字体中没有Arial字体。我不想在我的应用程序中使用arial ttf文件。还有其他方法来应用Arial字体吗?
textView
中。请问为什么您不愿意使用字体文件来应用这个字体呢?因为这样做可以提供相同的功能。Typeface tfArial = Typeface.createFromAsset(getAssets(), "arial.ttf");
TextView tv = null;
// find the textview id from layout or create dynamically
tv.setTypeface(tfArial);
编辑:
您需要将字体文件arial.ttf
放在您的asset
文件夹中。
下载Arial字体,并在资源中创建名为“fonts”的文件夹,并将字体保存在其中。
Typeface tf = Typeface.createFromAsset(getAssets(),"fonts/arial.ttf");
TextView tv = (TextView) findViewById(R.id.CustomFontText);
tv.setTypeface(tf);
<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:android="http://schemas.android.com/apk/res/android">
<font
android:font="@font/nunito_extrabold"
android:fontStyle="normal"
android:fontWeight="400" />
</font-family>
就是这样!您可以在每个TextView中添加android:fontFamily属性来使用此字体。
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/font_semibold"
android:text="@string/custom_font" />
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@android:id/text1"
android:layout_width="match_parent"
android:textSize="15sp"
android:textColor="@color/tabs_default_color"
android:gravity="center"
android:layout_height="match_parent"
/>
请确保将ID保持不变,因为如果您使用自定义textview,则TabLayout会检查此ID
然后从代码中填充此布局并在该textview上设置自定义Typeface,并将此自定义视图添加到选项卡中
for (int i = 0; i < tabLayout.getTabCount(); i++) {
//noinspection ConstantConditions
TextView tv=(TextView)LayoutInflater.from(this).inflate(R.layout.custom_tab,null)
tv.setTypeface(Typeface);
tabLayout.getTabAt(i).setCustomView(tv);
}
.ttf
/.otf
文件。 - Siddharth Lele