Android 开发第四讲 TextView的基本使用
Android 开发第四讲 TextView的使用
一丶TextViw
1.1 TextView主要作用
TextView可以进行如下
- 文字大小,颜色设置,显示文字
- 显示不下文字的时候 使用 ....来进行省略
- 文件+icon 形式进行显示
- 中划线,下划线等 显示设置.
- 文字效果.
总结来说.文字显示控件支持的属性很多.需要编写Xml进行体会.
1.2 Xml设置Button按钮. java入口设置Button使用
Button后面会说.这里先贴出代码. 这里会响应Button点击.所以后续会说.
这里先做基本的.
Layout Activity_main.xml修改为如下
<?xml version="1.0" encoding="utf-8"?><!--设置为相对布局-->
<LinearLayout 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"
android:orientation="vertical"
tools:context=".MainActivity">
<!-- 设置Button 并且设置ID-->
<Button
android:id="@+id/Btn_Text"
android:layout_width="match_parent"
android:text="点击我"
android:layout_height="wrap_content">
</Button>
</LinearLayout>
1.3 设置Button的响应事件
在Src中的 MainActivity中代码写入如下
package com.ibinary.myapplication;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.sax.StartElementListener;
import android.view.View;
import android.widget.Button;
// Alt + Shift + Entery 引入此包
public class MainActivity extends AppCompatActivity {
// 声明Button 一会使用 如果找不到则引入这个包 Alt+Shift+Enter
private Button m_BtnText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 找到这个Button 使用 findBiewById 寻找R.id 下的我们定义的ID 但是返回值是view类型,
//所有我们要进行转换 转换为Button Button
m_BtnText = (Button) findViewById(R.id.Btn_Text);
// 响应 按钮点击消息 设置点击事件
// 匿名内部类
m_BtnText.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view) {
//设置点击事件,跳转到 TextView 中. 所以我们要建立一个TextView的Active
//建立之后会产生一个 TextView 以及一个activity_text_view,并且我们需要在AndroidManifest.xml中注册
//从哪里 跳转到哪里
Intent intent = new Intent(MainActivity.this,TextViewActive.class);
startActivity(intent);
}
});
}
}
上述代码表示我们点击按钮的时候,跳转到TextViewActive中执行
但是这里我们没有创建.所以我们可以创建一个新的Active
如下
建立的空 Activity修改为 TextViewActive即可.
建立好之后会自动 在 AndroidMinifest.xml中注册.让我们使用.
然后也会自动在Layout下面创建一个activity_text_view.xml布局文件,当然名字在你创建Activity的时候
可以自己指定
二丶TextView Xml写法
2.1 TextView的常用属性的写法
TextView中的Text属性可以指定你要显示的名称.可以直接写,也可以引用另一个Xml文件中信息
在Android Studio中 Values下记录的这是一些信息.
比如strings.xml colors.xml等信息
android:textColor = "#000000" 可以设置字体的颜色
android:text="HelloWorld" 设置显示的文字,可以直接设置也可以引用设置
android:textSize="20sp" 可以设置字体大小. 字体大小因为屏幕原因使用sp表示.布局使用dp表示
android:maxLines="1" 设置为一行,不换行
android:ellipsize="end" 可以设置为过长不显示
xml编写为如下
strings.xml中如下
<resources>
<string name="app_name">My Application</string>
<string name="TestVie1">我是第一个TextView是被引用的</string>
</resources>
active_text_view.xml如下
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:orientation="vertical"
tools:context=".TextViewActive">
<!-- 引用方式显示 并且设置字体大小-->
<TextView
android:id="@+id/Text_ViewId1"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:textColor="#834e18"
android:textSize="20sp"
android:text="@string/TestVie1">
</TextView>
<!-- 直接写的显示-->
<TextView
android:id="@+id/Text_ViewId2"
android:layout_marginTop="10dp"
android:layout_width="wrap_content"
android:layout_height="20dp"
android:textColor="#00ff33"
android:text="我是不被引用的">
</TextView>
<!--设置TextView为不换行,以及显示为...表示-->
<TextView
android:layout_marginTop="20dp"
android:id="@+id/Text_ViewId3"
android:layout_width="60dp"
android:maxLines="1"
android:layout_height="20dp"
android:text="过长显示为省略号"
android:ellipsize="end"
android:textColor="#000033">
</TextView>
</LinearLayout>
效果图如下
2.2 TextView 显示为文字+图片的形式
如果想显示图片.那么我们就要找一个图片.并且放到 drawable中.然后进行引用
属性如下:
android:drawableRight = "@drawable/xxxx图片" 显示图片在文字的右边,同样有上边左边下边等
添加图片到drawable中.选中drawable直接Ctrl+V粘贴即可.或者你自己选择图片路径
对应xml
<TextView
android:id="@+id/Text_View4"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:textSize="20sp"
android:layout_marginTop="20dp"
android:text="请看右边"
android:drawablePadding="3dp"
android:drawableRight="@drawable/down">
</TextView>
图片资源自己找. 效果图如下
2.3 TextView设置中划线以及下划线
要设置中划线 就要写代码进行设置了,不过我们要建立一个新的textview 并为其分配一个ID便于我们操作
写代码前两句还是一样
1.声明控件
2.找到控件,并强转.
只不过此时我们需要调用其中的方法了.而不是设置事件
在 TextViewActive下的代码如下
代码如下:
package com.ibinary.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.graphics.Paint;
import android.os.Bundle;
import android.widget.TextView;
public class TextViewActive extends AppCompatActivity {
//声明控件
private TextView m_TextViewId5;
private TextView m_TextViewId6;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_text_view);
//通过ID找到控件
m_TextViewId5 = (TextView) findViewById(R.id.Text_ViewId5);
m_TextViewId6 = (TextView) findViewById(R.id.Text_ViewId6);
//调用方法设置
//设置中划线,但是可能会有锯齿.所以调用去掉锯齿的方法
m_TextViewId5.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG);
m_TextViewId5.getPaint().setAntiAlias(true);
//设置下划线 Paint.UNDERLINE_TEXT_FLAG
m_TextViewId6.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);
//第二种形式使我们可以从html中设置
m_TextViewId6.setText(Html.fromHtml("<u>Html形式</u>"));
}
}
active_view设置的xml描述如下
<TextView
android:id="@+id/Text_ViewId5"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:text="中划线"
android:layout_marginTop="20dp"
android:textSize="20sp">
</TextView>
点击按钮运行则会看到最终效果
点击之后则会跳转到TextView中
已经实现了中划线的效果
下划线如下
html如下
html需要了解 html标签以及语法等. 代码的话要使用 setText来设置.
2.4 跑马灯效果设置
跑马丁就是 文字循环显示
那么我们就要设置以下几个属性
android:singleLine="true" //设置为单行显示,不过被弃用了.后面可以百度看一下解决方法
android:ellipsize="marquee" // 显示条目设置
android:marqueeRepeatLimit="marquee_forever" //设置循环次数,marquee_forever代表一致循环
android:focusable="true" //设置焦点
android:focusableInTouchMode="true" //设置焦点模式
xml代码如下
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="30sp"
android:text="IBinary 博客园 IBinary 博客园 IBinary 博客园"
android:textColor="#9933ff"
android:singleLine="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:focusable="true"
android:focusableInTouchMode="true">
</TextView>
运行之后就会显示
- 大整数乘法
- ntp服务配置
- Linux系统下如何查看及修改文件读写权限
- Apache Commons CLI命令行启动
- rsync+inotify实时同步
- 18本纸质书:OpenCV、Python和机器学习,总有一本适合你
- 三种Linux服务器监控技术的对比
- http和www服务基础知识
- 手把手教你在VirtualBox中与主机共享文件夹
- Kafka与Logstash的数据采集对接 —— 看图说话,从运行机制到部署
- Kafka入门初探+伪集群部署
- Beats数据采集---PacketbeatFilebeatTopbeatWinlogBeat使用指南
- linux NFS网络文件系统
- linux基础命令
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 构建Rasa低成本的Docker开发部署环境
- JsonPath实践(五)
- 项目实战 | 细节决定成败的渗透测试
- 工具的使用 | CobaltStrike证书修改躲避流量审查
- 一分钟学Python|Python的集合
- 遇到个小BUG之后
- 小白学PyTorch | 1 搭建一个超简单的网络
- 小白学PyTorch | 动态图与静态图的浅显理解
- Go 视图模板篇(五):模板布局和继承
- Go 视图模板篇(四):上下文感知与 XSS 攻击
- 引入 Laravel Mix 管理前端资源
- Go 视图模板篇(三):参数、管道和函数调用
- 基于独立的 Laravel Eloquent 组件编写 ORM 模型类
- 漫画:什么是 “跳表” ?
- JAVA | Guava EventBus 使用 发布/订阅模式