Android笔记——文本框(TextView)

时间:2021-09-07
本文章向大家介绍Android笔记——文本框(TextView),主要包括Android笔记——文本框(TextView)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

一、常见属性

android:text:文本

android:background: 背景颜色

android:textSize:字体大小,单位用sp

android:textColor:字体颜色

android:layout_gravity:相对父级的位置,控件的对齐方式

android:drawableRight:在右边添加图片,方向也可以是left、right、top、bottom;还可以在activity文件直接添加图片,并控制图片大小

二、书写TextView控件

(1)在layout布局文件里面书写TextView

<TextView
            android:id="@+id/文本框的id"
            android:layout_width="宽度"
            android:layout_height="高度"
            android:text="文字..."
            其它样式.../>

如果需要修改特殊样式需要在activity文件修改,不需要直接跳过第二和第三步:

(2)在acitvity文件方法体外声明文本框

private TextView 自定义文本框名字;

(3)在activity文件方法体内通过id找到文本框

自定义文本框名字= (TextView) findViewById(R.id.文本框的id);

注意:所需要的包,可以直接Alt+Enter自动导入

三、使用...代表显示不了的文字的方法

(1)给控件固定的宽度

(2)android:maxLines="整数"

代表最多显示1行

(3)android:ellipsize="end"

在末尾添加"..."

四、制作走马灯特效的简单方法

(1)android:ellipsize="marquee"

设置走马灯显示

(2)android:marqueeRepeatLimit="marquee_forever"

设置重复的次数为永久

(3)android:focusable="true"

获取焦点

(4)android:focusableInTouchMode="true"

可以通过touch获取焦点

(5)android:singleLine="true"

单行显示文字

五、添加中横线或下划线

(1)在layout文件添加控件

<TextView
        android:id="@+id/自定义的id"
        android:layout_width="宽度"
        android:layout_height="高度"
        android:text="@string/str_test"
        各种样式.../>

文本可以书写在strings.xml文件里面

1.书写规则:
<string name="name属性值">文字</string>
2.获取strings.xml中的文字
android:text="@string/name属性值"

(2)在activity文件书写中横线或下划线样式

package com.example.lqh.firstproctect;

import android.app.Activity;
import android.graphics.Paint;
import android.os.Bundle;
import android.widget.TextView;


public class TextViewActivity extends Activity {
    private TextView 自定义文本名字;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_text_view);
        自定义文本名字 = (TextView) findViewById(R.id.自定义的id);
        自定义文本名字.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG);//添加中横线
        自定义文本名字.getPaint().setAntiAlias(true);//去掉锯齿
    }
}

1.STRIKE_THRU_TEXT_FLAG:中横线
2.UNDERLINE_TEXT_FLAG:下划线

(3)也可以通过html添加中横线或下划线

package com.example.lqh.firstproctect;

import android.app.Activity;
import android.os.Bundle;
import android.text.Html;
import android.widget.TextView;


public class TextViewActivity extends Activity {
    private TextView text5;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_text_view);
        text5 = (TextView) findViewById(R.id.txt_05);
        text5.setText(Html.fromHtml("<del>TextView</del>"));
    }
}

1.<del></del>:中横线

2.<u></u>:下划线

六、带图片的TextView

可以设置四个方向的图片:drawableTop(上),drawableButtom(下),drawableLeft(左),drawableRight(右)

(1)将准备好的图片放在drawable文件夹里面

(2)在layout布局文件里设置图片,但不能修改图片大小

<TextView
        android:id="@+id/自定义的id"
        android:layout_width="宽度"
        android:layout_height="高度"
        android:drawableRight="@drawable/图片名称(不包含后缀名)"
        />

(3)在activity文件里设置图片,可以修改图片大小

package com.example.lqh.firstproctect;
        
        import android.app.Activity;
        import android.graphics.drawable.Drawable;
        import android.os.Bundle;
        import android.widget.TextView;
        
        
        public class TextViewActivity extends Activity {
        
            private TextView 自定义的文本框名字;
            @Override
            protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_text_view);
                //控制图片的大小
                自定义的文本框名字 = (TextView) findViewById(R.id.自定义的id);
                Drawable drawable = getResources().getDrawable(R.drawable.图片名字);
                drawable.setBounds(0,0,50,50);//第一个参数是距离左边距离,第二个参数是距离上边距离,第三个参数是长度,第四个参数是宽度
                自定义的文本框名字.setCompoundDrawables(null,null,drawable,null);//参数依次为左上右下,这里只设置了右边的图片,所以其它为null
            }
        }

七、点击跳转到其它页面

(1)添加新的acrivity文件

(2)取acrivity文件的名字

(3)点击Finish,发现新建的activity的类继承了AppCompatActivity

(4)修改新建的activity文件

创建的类必须继承自android.app.Activity或者其子类

package com.example.lqh.firstproctect;

//import android.support.v7.app.AppCompatActivity;导入的包修改为:

import android.app.Activity;

import android.os.Bundle;

public class TextViewActivity extends Activity {//AppCompatActivity修改为“Activity”

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_text_view);
    }
}

(5)给按钮添加点击事件

package com.example.lqh.firstproctect;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends Activity {

    private Button 自定义按钮名字;//声明按钮

    @Override

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        自定义按钮名字 = (Button) findViewById(R.id.按钮的);//通过id找到按钮
        自定义按钮名字.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //跳转到另一个页面
                Intent intent = new Intent(当前activity文件名.this, 要跳转到的页面的activity文件名.class);
                startActivity(intent);
            }
        });
    }
}

原文地址:https://www.cnblogs.com/lqh0904/p/15236436.html