Android Studio App设置TextView文字内容大小颜色

设置TextView文字内容大小颜色

1.第一种方法在activity_main.xml李设置,Java文件不用改:

android:text="这里是文字"
android:textSize="字体大小"
android:textColor="颜色代码"

整个xml内容如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
    <TextView
        android:id="@+id/text_in_xml"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="大丈夫生于乱世,当带三尺剑立不世之功。"
        android:textSize="30dp"
        android:textColor="#ff5e9cff" />
</RelativeLayout>

2.第二种方法,在MainActivity.java文件里设置,xml不用改

text.setText("大丈夫生于乱世,当带三尺剑立不世功");//设置文字内容
text.setTextColor(Color.parseColor("#ff5e9cff"));//设置颜色
text.setTextSize(30);;//设置字体大小

整个java文件内容如下:

package com.mycompany.test;

import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.hardware.SensorManager;
import android.net.Uri;
import android.os.RemoteException;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;


public class MainActivity extends ActionBarActivity
{
    public TextView text;
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        text=(TextView) findViewById(R.id.text_in_xml);
        text.setText("大丈夫生于乱世,当带三尺剑立不世功");//设置文字内容
        text.setTextColor(Color.parseColor("#ff5e9cff"));//设置颜色
        text.setTextSize(30);;//设置字体大小
    }
}



这里可能出现中文乱码,解决方法: 点击打开链接

最终运行效果:



要在 Android Studio 中实现 TextView 字体颜色的渐变效果,可以通过自定义 Drawable 资源文件来完成。以下是具体方法: ### 创建 Gradient 可绘制资源 创建一个新的 XML 文件 `gradient_text.xml` 并将其放置在项目的 `res/drawable/` 目录下。 ```xml <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="line"> <gradient android:startColor="#FF0000" android:endColor="#FFFF00" android:type="linear"/> </shape> ``` 上述代码定义了一个线性的渐变效果,起始颜色为红色 (`#FF0000`),终止颜色为黄色 (`#FFFF00`)。 --- ### 设置 TextView 的 Shader 效果 由于直接通过 XML 配置无法完全满足复杂的字体渐变需求,因此需要借助 Java 或 Kotlin 代码动态设置 `TextPaint.Shader` 属性。 #### 使用 Java 实现 在 Activity 或 Fragment 中编写如下代码: ```java import android.graphics.LinearGradient; import android.graphics.Shader; import android.os.Bundle; import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 获取 TextView 控件实例 android.widget.TextView textView = findViewById(R.id.tv_gradient); // 定义渐变范围和方向 int width = textView.getWidth(); float[] colors = new float[]{0, 1}; int[] colorValues = new int[]{0xFFFF0000, 0xFFFFFF00}; // 应用 LinearGradient 到 TextPaint.shader textView.getPaint().setShader(new LinearGradient( 0, 0, width, textView.getTextSize(), colorValues, null, Shader.TileMode.CLAMP)); } } ``` 这段代码实现了从左至右的颜色渐变,并应用到了指定的 TextView 上[^3]。 #### 使用 Kotlin 实现 如果项目基于 Kotlin,则可改写为以下形式: ```kotlin import android.graphics.LinearGradient import android.graphics.Shader import android.os.Bundle import androidx.appcompat.app.AppCompatActivity class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val textView = findViewById<TextView>(R.id.tv_gradient) val width = textView.width.toFloat() val height = textView.textSize textView.paint.shader = LinearGradient( 0f, 0f, width, height, intArrayOf(0xFFFF0000.toInt(), 0xFFFFFF00.toInt()), null, Shader.TileMode.CLAMP ) } } ``` 以上代码同样设置了从红到黄的水平渐变效果[^4]。 --- ### 布局文件配置 确保布局文件中已正确定义了目标 TextView 组件。例如: ```xml <com.example.picturetest.textview.TextViewGradient android:id="@+id/tv_gradient" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="这是一个带有渐变字体颜色的文本视图" android:textSize="24sp" android:gravity="center_horizontal" /> ``` 这里需要注意的是,为了兼容某些特殊功能,可能需要扩展默认的 `TextView` 类并重载其渲染逻辑[^1]。 --- ### 动态状态切换(可选) 如果希望根据用户的交互行为改变文字样式,比如按下按钮时显示不同的渐变效果,可以引入 Selector drawable 来管理不同状态下使用的图片或颜色方案[^4]。 ```xml <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@drawable/textview_pressed_gradient" /> <item android:drawable="@drawable/textview_default_gradient" /> </selector> ``` 随后将该 selector 指定给 TextView 的 background 属性即可生效。 --- 问题
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值