一、设置字体
Android系统默认提供了几种字体,可以通过以下方式设置。首先在res/font下新建字体文件,如myfont.ttf,然后在xml布局文件中使用,如下所示:
<TextView
android:id="@+id/textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/myfont"
android:text="Hello World!" />
此外,还可以通过setTypeface方法设置字体,如下所示:
TextView textView=findViewById(R.id.textview);
Typeface typeface=Typeface.createFromAsset(getAssets(),"myfont.ttf");
textView.setTypeface(typeface);
二、设置文字粗细和斜体
通过android:textStyle属性可以设置粗细或斜体,具体使用方法如下:
<TextView
android:id="@+id/textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
android:textStyle="bold" />
也可以组合使用,设置为粗体和斜体:
<TextView
android:id="@+id/textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
android:textStyle="bold|italic" />
同样也可以通过代码设置,如下所示:
TextView textView=findViewById(R.id.textview);
textView.setTypeface(null,Typeface.BOLD_ITALIC);
三、设置文字大小和颜色
通过android:textSize属性可以设置字体大小,如下所示:
<TextView
android:id="@+id/textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
android:textSize="24sp" />
同时可以通过android:textColor设置文字颜色,如下所示:
<TextView
android:id="@+id/textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
android:textSize="24sp"
android:textColor="#FF0000" />
通过代码设置也非常简单,如下所示:
TextView textView=findViewById(R.id.textview);
textView.setTextSize(TypedValue.COMPLEX_UNIT_SP,24);
textView.setTextColor(Color.RED);
四、设置文字阴影
通过android:shadowColor、android:shadowDx、android:shadowDy和android:shadowRadius四个属性可以设置文字的阴影效果,如下所示:
<TextView
android:id="@+id/textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
android:textSize="24sp"
android:shadowColor="#999999"
android:shadowDx="2"
android:shadowDy="2"
android:shadowRadius="2" />
其中android:shadowColor属性设置阴影颜色,android:shadowDx和android:shadowDy分别设置阴影在x轴和y轴的偏移量,android:shadowRadius设置阴影半径。
同样也可以通过代码设置,如下所示:
TextView textView=findViewById(R.id.textview);
textView.setShadowLayer(2,2,2,Color.GRAY);
五、设置文字行间距和字间距
通过android:lineSpacingExtra和android:letterSpacing两个属性可以设置文字行间距和字间距,如下所示:
<TextView
android:id="@+id/textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
android:textSize="24sp"
android:lineSpacingExtra="10dp"
android:letterSpacing="0.1" />
其中android:lineSpacingExtra属性设置行间距,单位是dp,android:letterSpacing属性设置字间距,值为0~1之间的浮点数。
同样也可以通过代码设置,如下所示:
TextView textView=findViewById(R.id.textview);
textView.setLineSpacing(10,1);
textView.setLetterSpacing(0.1f);
完整代码示例
res/font/myfont.ttf
<?xml version="1.0" encoding="utf-8"?>
<resources>
<font-family
xmlns:android="http://schemas.android.com/apk/res/android"
android:fontProviderAuthority="@string/font_provider_authority"
android:fontProviderCerts="@array/certs"
android:fontProviderPackage="@string/font_provider_package"
android:fontProviderQuery="@string/font_provider_query">
<font
android:fontStyle="normal"
android:fontWeight="400"
android:font="@font/myfont" />
</font-family>
</resources>
res/layout/activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:fontFamily="@font/myfont"
android:letterSpacing="0.1"
android:lineSpacingExtra="10dp"
android:shadowColor="#999999"
android:shadowDx="2"
android:shadowDy="2"
android:shadowRadius="2"
android:text="Hello World!"
android:textColor="#FF0000"
android:textSize="24sp"
android:textStyle="bold|italic"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.5" />
</androidx.constraintlayout.widget.ConstraintLayout>
MainActivity.java
import android.graphics.Color;
import android.graphics.Typeface;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import android.util.TypedValue;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//设置字体
TextView textView1=findViewById(R.id.textview);
Typeface typeface=Typeface.createFromAsset(getAssets(),"myfont.ttf");
textView1.setTypeface(typeface);
//设置文字粗细和斜体
TextView textView2=findViewById(R.id.textview);
textView2.setTypeface(null,Typeface.BOLD_ITALIC);
//设置文字大小和颜色
TextView textView3=findViewById(R.id.textview);
textView3.setTextSize(TypedValue.COMPLEX_UNIT_SP,24);
textView3.setTextColor(Color.RED);
//设置文字阴影
TextView textView4=findViewById(R.id.textview);
textView4.setShadowLayer(2,2,2,Color.GRAY);
//设置文字行间距和字间距
TextView textView5=findViewById(R.id.textview);
textView5.setLineSpacing(10,1);
textView5.setLetterSpacing(0.1f);
}
}