安卓编程基础——标签

article/2025/9/20 21:15:43

目录

前言

(一)继承关系图

(二)标签常用属性

(三)教学案例:标签演示

1、创建安卓应用

2、字符串资源文件

3、自定义边框配置文件

4、主布局资源文件

5、主界面类实现功能

6、启动应用,查看效果。

总结


前言

  1. 熟悉标签常用属性
  2. 能在应用中正确使用标签
  3. 安卓应用里需要显示不变的信息,一般采用标签(TextView)。

一、标签

(一)继承关系图

  • TextView是View的子类
  • Button和EditText都是TextView的子类
  • (二)标签常用属性

属性作用
text标签文本内容(@string/username)
textColor标签文本颜色(#ff00ff、@color/red)
textSize标签文本字号(单位用sp)
textStyle标签文本样式(normal | bold | italic)
autoLink自动链接(none、web、email、phone、map)
background背景(背景色、背景图片、背景图形)
textAllCaps字母全大写
drawableTop图片在上
drawableBottom图片在下
drawableLeft图片在左
drawableRight图片在右

(三)教学案例:标签演示

1、创建安卓应用

  • 基于Empty Activity模板创建安卓应用 - TextViewDemo

2、字符串资源文件

  • 字符串资源文件--strings.xml

 

代码如下:

<resources><string name="app_name">标签演示</string><string name="normal">常规:Welcome to Android World</string><string name="bold">粗体:Welcome to Android World</string><string name="italic">斜体:Welcome to Android World</string><string name="bold_italic">粗斜:Welcome to Android World</string><string name="all_caps">全大写:Welcome to Android World</string><string name="theorem">勾股定理:</string><string name="equation">化学方程式:</string><string name="android">安卓</string>
</resources>

3、自定义边框配置文件

  • drawable目录里创建自定义边框配置文件custom_border.xml

 代码如下:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"android:shape="rectangle"><corners android:radius="5dp" /> <!--圆角--><solid android:color="#dddddd" /> <!--填充色--><strokeandroid:width="1dp"android:color="#555555" /> <!--边界宽度及颜色--><paddingandroid:bottom="10dp"android:left="10dp"android:right="10dp"android:top="10dp" /> <!--内边距--><gradientandroid:centerColor="#ffff00"android:endColor="#00ff00"android:startColor="#aaaaaa" /> <!--渐变色-->
</shape>

4、主布局资源文件

  • 主布局资源文件 - activity_main.xml

 代码如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:background="#000000"android:orientation="vertical"android:padding="10dp"tools:context=".MainActivity"><TextViewandroid:id="@+id/tv_normal"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/normal"android:textColor="@android:color/holo_blue_bright"android:textSize="15sp"android:textStyle="normal" /><TextViewandroid:id="@+id/tv_bold"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/bold"android:textColor="@android:color/holo_green_light"android:textSize="15sp"android:textStyle="bold" /><TextViewandroid:id="@+id/tv_italic"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/italic"android:textColor="@android:color/holo_orange_light"android:textSize="15sp"android:textStyle="italic" /><TextViewandroid:id="@+id/tv_bold_italic"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/bold_italic"android:textColor="@android:color/holo_purple"android:textSize="15sp"android:textStyle="bold|italic" /><!--分割线--><Viewandroid:layout_width="match_parent"android:layout_height="1dp"android:layout_marginTop="5dp"android:layout_marginBottom="5dp"android:background="#aaaaaa" /><TextViewandroid:id="@+id/tv_all_caps"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/all_caps"android:textAllCaps="true"android:textColor="#ffffff"android:textSize="15sp"android:textStyle="normal" /><TextViewandroid:id="@+id/tv_theorem"android:layout_width="wrap_content"android:layout_height="40dp"android:layout_marginTop="10dp"android:gravity="center_vertical"android:text="@string/theorem"android:textColor="@android:color/holo_red_light"android:textSize="20sp" /><TextViewandroid:id="@+id/tv_equation"android:layout_width="wrap_content"android:layout_height="40dp"android:layout_marginTop="10dp"android:gravity="center_vertical"android:text="@string/equation"android:textColor="@android:color/holo_green_dark"android:textSize="20sp" /><!-- 分隔线 --><Viewandroid:layout_width="match_parent"android:layout_height="1dp"android:layout_marginTop="5dp"android:layout_marginBottom="5dp"android:background="#aaaaaa" /><TextViewandroid:id="@+id/tv_web"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="10dp"android:autoLink="web"android:text="网址:http://www.baidu.com"android:textColor="@android:color/holo_orange_light"android:textSize="15sp" /><TextViewandroid:id="@+id/tv_email"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="10dp"android:autoLink="email"android:text="邮箱:maths007@163.com"android:textColor="@android:color/holo_green_light"android:textSize="15sp" /><TextViewandroid:id="@+id/tv_phone"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="10dp"android:autoLink="phone"android:text="电话:15892921170"android:textColor="@android:color/holo_red_light"android:textSize="15sp" /><!-- 分隔线 --><Viewandroid:layout_width="match_parent"android:layout_height="1dp"android:layout_marginTop="5dp"android:layout_marginBottom="5dp"android:background="#aaaaaa" /><TextViewandroid:id="@+id/tv_bordered_text"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="10dp"android:background="@drawable/custom_border"android:text="带边框的文本:永不放弃的梦想"android:textColor="#ff0000"android:textSize="15sp" /><LinearLayoutandroid:layout_width="match_parent"android:layout_height="160dp"android:gravity="center"android:orientation="horizontal"><!--图片标签--><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:drawableLeft="@mipmap/ic_launcher"android:gravity="center"android:text="@string/android"android:layout_marginRight="10dp"android:textColor="#ffffff"android:textSize="18sp" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:drawableTop="@mipmap/ic_launcher"android:gravity="center"android:text="@string/android"android:layout_marginRight="10dp"android:textColor="#ffffff"android:textSize="18sp" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:drawableBottom="@mipmap/ic_launcher"android:gravity="center"android:text="@string/android"android:layout_marginRight="10dp"android:textColor="#ffffff"android:textSize="18sp" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:drawableRight="@mipmap/ic_launcher"android:gravity="center"android:text="@string/android"            android:textColor="#ffffff"android:textSize="18sp" /></LinearLayout>
</LinearLayout>

 查看预览效果

 

5、主界面类实现功能

  • 主界面类 - MainActivity

 申明上下标

 

 代码如下:

package net.lgh.textview;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;
import android.text.Html;
import android.widget.TextView;public class MainActivity extends AppCompatActivity {private TextView tvTheorem;private TextView tvEquation;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);tvTheorem = findViewById(R.id.tv_theorem);tvEquation = findViewById(R.id.tv_equation);// 显示勾股定理(毕达哥拉斯定理)tvTheorem.setText(Html.fromHtml("勾股定理:a<sup>2</sup> + b<sup>2</sup> = c<sup>2</sup>"));// 显示化学方程式tvEquation.setText(Html.fromHtml("化学方程式:2H<sub>2</sub> + O<sub>2</sub> = 2H<sub>2</sub>O"));}
}

6、启动应用,查看效果。


总结

本章讲述如何才能实现使安卓页面显示不变的信息且实现个性化的布局。如若想要进一步实现更加繁杂的画面,请关注博主,将在下一篇文章更加详细的讲解。


http://chatgpt.dhexx.cn/article/jemCD7yL.shtml

相关文章

安卓编程基础——菜单

前言&#xff1a;学习目标 知道三种菜单使用场景能够正确使用三种菜单 一、新课讲解 菜单在安卓应用程序中占有比较重要的位置。原生安卓提供了三种类型的菜单&#xff1a;选项菜单&#xff08;OptionsMenu&#xff09;、上下文菜单&#xff08;ContextMenu&#xff09;和子菜…

安卓并发编程基础

1.线程 1.线程与进程的区别。 进程是程序运行和资源分配的基本单位&#xff0c;一个程序至少有一个进程&#xff0c;一个进程至少有一个线程。进程在执行过程中拥有独立的内存单元&#xff0c;而多个线程共享内存资源&#xff0c;减少切换次数&#xff0c;从而效率更高。线程是…

【安卓开发】安卓网络编程

目录 一、安卓Socket客户端二、安卓Socket客户端优化&#xff08;小车遥控器拓展&#xff09;三、Android非UI线程修改空间程序崩溃问题一种新的解决办法&#xff1a;Handler类&#xff08;倒计时软件&#xff09; 四、Android网络接收数据并刷新界面&#xff08;综合练习&…

storm-executor-spout(2)

2121SCSDUSC storm-executor-spout&#xff08;2&#xff09; 用一个spout读取Twitter数据。采用拓扑并行化&#xff0c;多个spout从同一个流读取数据的不同部分。如果有多个流要读取&#xff0c;可以在任意组件内&#xff08;spouts/bolts&#xff09;访问TopologyContext。…

php读取excel效率,PhpSpreadsheet VS Box\Spout读取excel性能对比

phpspreadsheet版本:1.5.0 spout版本:2.7.3 在同样的环境下,运行代码,spout的在内存使用和时间花费上都占优,在phpspreadsheet读取失败的文档spout依然能正确完成读取。 spout代码 ini_set(memory_limit, 2G); var_dump(memory_get_usage()); var_dump(microtime()); $loa…

KafkaSpout 浅析

最近在使用storm做一个实时计算的项目,Spout需要从 KAFKA 集群中读取数据&#xff0c;为了提高开发效率&#xff0c;直接使用了Storm提供的KAFKA插件。今天抽空看了一下KafkaSpout的源码&#xff0c;记录下心得体会。 KafkaSpout基于kafka.javaapi.consumer.SimpleConsumer实现…

storm trident的多数据流,多spout

storm trident的多数据流&#xff0c;多spout (STORM)[storm, kafka] storm可以使用接收多个spout作为数据源&#xff0c;core storm与trident均可以&#xff0c;本文主要介绍trident的用法。 在trident中设置多个spout的基本思路是先建立多个spout&#xff0c;然后分别创建…

storm学习笔记(二)——Storm组件详解之Tuple、Spout

目录 Tuple元组 结构 生命周期 Spout数据源 结构 开发spout组件 Storm的核心概念包括&#xff1a;Stream、Spout、Bolt、Tuple、Task、Worker、Stream Grouping、Topology Stream是被处理的数据&#xff0c;Spout是数据源&#xff0c;Bolt是处理数据的容器&#xff0c;T…

java 纳秒 格式化_Java日期时间API系列35-----Jdk8中java.time包中的新的日期时间API类应用,微秒和纳秒等更精确的时间格式化和解析。...

通过Java日期时间API系列1-----Jdk7及以前的日期时间类中得知,Java8以前除了java.sql.Timestamp扩充纳秒,其他类最大只精确到毫秒;Java8 time包所有相关类都支持纳秒。下面是示意图: 图中的nano 是 一秒钟包含的纳秒值,0到999999999。毫秒,微秒和纳秒都是通过这个值计算得…

c语言计时程序 纳秒,前端Tips#4 - 用 process.hrtime 获取纳秒级的计时精度

视频讲解 文字讲解 如果去测试代码运行的时长&#xff0c;你会选择哪个时间函数&#xff1f; 一般第一时间想到的函数是 Date.now 或 Date.getTime。 1、先讲结论 之所以这么选&#xff0c;是基于 精度 和 时钟同步 两方面考虑的。 2、知识讲解 首先看一下 Date.now 的缺点 返回…

纳秒时代

1978年在英特尔公司的历史中是很不平凡的一年。这一年它满10岁了&#xff0c;员工数首次超过1万人。这一年&#xff0c;它卖掉了竞争激烈的电子表&#xff08;digital watch&#xff09;业务。最重要的是&#xff0c;在这一年6月&#xff0c;它推出了具有跨时代意义的8086芯片。…

linux内核纳秒精度时间,Linux时钟精度:毫秒?微妙?纳秒?

最近被内核时钟精度弄的很是郁闷。具体情况如下&#xff1a; 扫盲&#xff1a;1秒1000毫秒1000000微妙1000000000纳秒 首先&#xff1a;linux有一个很重要的概念——节拍&#xff0c;它的单位是(次/秒)。2.6内核这个值是1000&#xff0c;系统中用一个HZ的宏表征这个值。同时有全…

java 日期 纳秒_java8 ZonedDateTime 日期精度到纳秒

1秒 10E3毫秒 10E6 微妙 10E9 纳秒 使用java8 Instant 内部实际System.currentTimeMillis() 在模型上 可输出纳秒数据 重点是模型 时间戳转日期 public static ZonedDateTime ofInstant(Instant instant, ZoneId zone) { Objects.requireNonNull(instant, "instant&qu…

第九章:NAT(网络地址转换协议)

文章目录 一、NAT1、NAT介绍①公有网络地址②私有网络地址 2、NAT工作原理3、NAT功能 二、NAT的实现方式1、静态转换&#xff08;static Translation&#xff09;实验对比 2、动态转换2.1 ACL&#xff08;访问控制列表&#xff09;2.2 配置动态NAT实验效果 3、端口多路复用3.1 …

【NAT网络地址转换(私网公网地址、静态NAT、动态NAT、NAPT、Easy IP、NAT Server)】-20211215、20211216

目录 一、NAT产生背景 1.产生背景 2.私网地址、公网地址​ 私网IP地址&#xff0c;既可以一定上缓解ip的不足&#xff0c;在私网里&#xff0c;ip地址可以随意使用。 公网地址&#xff0c;在需要访问公网时&#xff0c;运用网络地址转换NAT技术&#xff0c;可以实现。 二…

什么是私网,公网?

我们常说的内网和外网&#xff0c;通常是相对于防火墙而言的&#xff0c;在防火墙内部叫做内网&#xff0c;反之就是外网。 在一定程度上外网等同于公网&#xff0c;内网等同于私网。公网地址 公网地址是指在因特网上直接可达的地址&#xff0c;如果你有一个公网地址&#xff0…

NAT——公私网地址转换

NAT—网络地址转换 NAT NAT又称为网络地址转换&#xff0c;用于实现私有网络和公有网络之间的转换 私有和公有网络地址 公有网络地址是指互联网上全球唯一的IP地址 私有网络地址是指内部网络或者主机的IP地址 IANA&#xff08;互联网数字分配机制&#xff09;规定将下列的IP地…

公网地址和私网地址问题

服务器映射用于将内网服务器的私网地址映射为公网地址&#xff0c;供Internet用户访问。选择“静态映射”类型可以将每一台服务器映射成一个独立的公网IP地址。“服务器负载均衡”类型可以将多台服务器映射成同一个公网地址&#xff0c;Internet用户在访问这个公网地址时&#…

私网地址与Internet地址

一、A、B、C三类地址 可用地址范围备注A类1.0.0.1-126.255.255.254B类128.1.0.1-191.255.255.254C类192.0.1.1-223.255.255.254D类224.0.0.1-239.255.255.254D类为多播地址 说明&#xff1a; 1. 每一个地址都是用网络位主机位组成的。 2. 全0的和全1的网络位和主机位都要去掉…

计算机网络 网络层 私网地址和公网地址及子网划分

公网地址 公有地址分配和管理由Inter NIC&#xff08;Internet Network Information Center 因特网信息中心&#xff09;负责。各级ISP使用的公网地址都需要向Inter NIC提出申请&#xff0c;有Inter NIC统一发放&#xff0c;这样就能确保地址块不冲突。 私网地址&#xff08;不…