提高Android TextView显示效果的小技巧

一、设置字体

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);
    }
}

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/270727.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-16 13:38
下一篇 2024-12-16 13:38

相关推荐

  • Android ViewPager和ScrollView滑动冲突问题

    Android开发中,ViewPager和ScrollView是两个常用的控件。但是当它们同时使用时,可能会发生滑动冲突的问题。本文将从多个方面介绍解决Android ViewPa…

    编程 2025-04-28
  • Android如何点击其他区域收起软键盘

    在Android应用中,当输入框获取焦点弹出软键盘后,我们希望能够点击其他区域使软键盘消失,以提升用户体验。本篇文章将说明如何实现这一功能。 一、获取焦点并显示软键盘 在Andro…

    编程 2025-04-28
  • Android Studio HUD 实现指南

    本文将会以实例来详细阐述如何在 Android Studio 中使用 HUD 功能实现菊花等待指示器的效果。 一、引入依赖库 首先,我们需要在 build.gradle 文件中引入…

    编程 2025-04-27
  • Android和Vue3混合开发方案

    本文将介绍如何将Android和Vue3结合起来进行混合开发,以及其中的优势和注意事项。 一、环境搭建 在进行混合开发之前,需要搭建好相应的开发环境。首先需要安装 Android …

    编程 2025-04-27
  • Android Java Utils 可以如何提高你的开发效率

    Android Java Utils 是一款提供了一系列方便实用的工具类的 Java 库,可以帮助开发者更加高效地进行 Android 开发,提高开发效率。本文将从以下几个方面对 …

    编程 2025-04-27
  • Android JUnit测试完成程序自动退出决方法

    对于一些Android JUnit测试的开发人员来说,程序自动退出是一个经常面临的困扰。下面从多个方面给出解决方法。 一、检查测试代码 首先,我们应该仔细检查我们的测试代码,确保它…

    编程 2025-04-25
  • Android Activity启动流程

    一、Activity概述 Android应用程序是由许多Activity组成的。一个Activity代表一个屏幕上的窗口。用户与应用程序交互时,Activity会接收用户的输入并处…

    编程 2025-04-25
  • Android单元测试详解

    一、单元测试概述 单元测试是指对软件中的最小可测试单元进行检查和验证。在Android开发中,单元测试是非常重要的一环,可以保证代码的质量、稳定性以及可维护性。 在Android开…

    编程 2025-04-25
  • Android WebView加载本地HTML

    一、介绍 Android WebView是一个内置的浏览器,它允许开发人员在应用中嵌入网页。使用WebView可以轻松地在应用程序中显示本地或远程的HTML内容。本篇文章将重点讲述…

    编程 2025-04-24
  • Android Wakelock详解

    一、什么是Android Wakelock? 在Android应用开发中,Wakelock被广泛应用于保持屏幕或CPU处于唤醒状态,以便应用程序可以继续执行后台任务,直到任务完成。…

    编程 2025-04-24

发表回复

登录后才能评论