当前位置: 首页 > ds >正文

【Android】TextView的使用

                               三三想成为安卓糕手

一:TextView的常见属性

1:引入

TextView:文本显示控件,基于TextView还有很多子类,都与文本处理有关,大多数文本控件都是基于TextView设计的,比如下面的按钮button,编辑框EditText等等;主要学习TextView,一法通万法

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2:页面跳转

这里我们调整一下页面跳转

		Button btnTest = findViewById(R.id.btn_test);//view这里翻译为视图更加合适btnTest.setOnClickListener(new View.OnClickListener(){@Overridepublic void onClick(View v){Intent intent = new Intent(MainActivity.this , TextViewActivity.class);startActivity(intent);Log.i("info","hello");//打印日志}});

3:线性布局

LinearLayout必须设置排列方向

    android:gravity="center"   //视图居中android:orientation="vertical"   //垂直的//这两句代码是在LinearLayout中阐述的,注意结束>括号

gravity 重力 horizontal [ˌhɔrɪˈzɑnt(ə)l] 水平的

在 Android 中,gravity 用于控制视图内容或者视图自身在容器里的位置。它的取值可以是单个方向(像 topleft),也能是组合方向(例如 top|end)。

orientation 方向[ˌɔriənˈteɪʃ(ə)n]

orientation 主要用于明确线性布局(LinearLayout)的排列方向,或者屏幕的旋转方向

默认是horizontal

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

4:Java代码后续修改xml的默认属性

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

(1)xml设置文本属性

用xml方式设置一些初始属性,比如文本内容和文字尺寸

    <TextViewandroid:id="@+id/tv_Sansan"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="18sp"android:text="里面有纯情女大"/>

后续,Java代码可以更改相应的属性值。

点击是每一个view都拥有的方法;button也好,textview也好,图片等等

我悟了xd,java跳转页面后文字内容和尺寸的改变实际上还是作用在一个activity上,本质只是修改,而非再创建

(2)java修改文本属性

		TextView tvSansan = findViewById(R.id.tv_Sansan);//使用xml中定义的文本控件tvSansan.setOnClickListener(new View.OnClickListener() {//对这个按钮设置一个监听器,但是你看不到按钮的样式,只有文字,点就完了@Overridepublic void onClick(View v) {tvSansan.setText("此时一位抠脚大汉闪亮登场");//我们在java中也可以进行文本的设置;xml中设置通常是一些默认属性tvSansan.setTextSize(30f);}});

总结:比如设置字体样式,Java和xml中进行对比,还有很多,慢慢了解

tvSansan.setTypeface(Typeface.DEFAULT_BOLD);//设置默认加粗

(3)修改字体等宽

android:typeface="monospace",在LinearLayout中定义,左图有定义,右图无。666

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

5:设置字体的位置

(1)xml修改gravity

比如右上

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

还有很多属性

right右上

center|left 居中靠左

right|bottom右下

重点记忆属性,具体的值不必记得非常清楚

(2)Java修改gravity

Gravity类中提供了很多常量

TextView tvSansan = findViewById(R.id.tv_Sansan);//使用xml中定义的文本控件
tvSansan.setGravity(Gravity.LEFT);//左上

6:设置背景色

android:background="@color/my_blue"

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

7:设置颜色和行数

(1)xml方式

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

		android:textColor="@color/white"        //设置字体颜色android:maxLines="2"                 //设置最大行数android:ellipsize="end"              //如果文本字太多以省略号的形式展现

ellipsis [ɪˈlɪpsɪs] 省略

8:TextView配置drawable

哇靠,自己理解drawable,这玩意就是指能在屏幕上绘画出各种图形的相关资源。

在文本中添加图片

(1)xml中使用drawable

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

        android:drawableLeft="@mipmap/ic_launcher_round"//在文本当中添加图片,并放在左边android:drawableTop="@mipmap/ic_launcher_round"android:drawableRight="@mipmap/ic_launcher_round"android:drawableBottom="@mipmap/ic_launcher_round"android:drawablePadding="20dp"         //设置两者的边距

(2)java中使用drawable

①方法理解

setCompoundDrawablesRelativeWithIntrinsicBounds()

在固有的边界上设置复合的drawable

Compound 复合的 Drawable 可绘制的对象 intrinsic 固有的

②参数理解

自己理解,传四个参数,设置左,上,右,下都用什么图片(实参可为null)

大白话:在固定边界上设置复合的图标

其实就是在文本的四个方向上设置图片

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这里是方法内部;可能我们只传递一个参数,如果其余参数为空那么就不设置了,

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

③代码分析

我叼

思考:==图片如何获取???==我们要用的图片是需要作为参数传入set方法中的,所以需要把图片转为drawable类型

类比获取颜色的思想:

((20250626105516-09c53ay “ContextCompat.getDrawable(this, R.mipmap.ic_launcher_round);”))

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

所以再来看这个代码:那我们就只传递一个图片作为参数,放到左边吧;

ContextCompat 上下文兼容工具类

TextView tvSansan = findViewById(R.id.tv_Sansan);//使用xml中定义的文本控件        
Drawable drawable = ContextCompat.getDrawable(this, R.mipmap.ic_launcher_round);
tvSansan.setCompoundDrawablesWithIntrinsicBounds(drawable,null,null,null);

这里看看效果(我放了4张图)兄弟太帅了666

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

(3)安卓自带图标

R.mipmap.ic_launcher_round是获取当前res下的一个安卓图标

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

http://www.xdnf.cn/news/15699.html

相关文章:

  • 大语言模型幻觉检测:语义熵揭秘
  • webpack将组件vue进行编译混淆,并能正常使用编译之后的文件
  • AR智能巡检:电力运维的数字化变革
  • Ansible 查看PostgreSQL的版本
  • 编译原理第四到五章(知识点学习/期末复习/笔试/面试)
  • 二重循环:输入行数,打印直角三角形和倒直角三角形
  • UE5 相机后处理材质与动态参数修改
  • 创建第二大脑的关键还是方法
  • xss-labs练习
  • Python+Selenium自动化
  • 创建linux端口映射连接小网
  • Vue2.x封装预览PDF组件
  • 观察者设计模式
  • 微服务引擎 MSE 及云原生 API 网关 2025 年 5 月产品动态
  • PXE实现Ubuntu,rockylinux,almalinux全自动安装
  • 第五届计算机科学与区块链国际学术会议(CCSB 2025)
  • MEF 在 WPF 中的简单应用
  • 多人协作游戏中,团队共同获取的装备如何确定按份共有或共同共有
  • 基于Llama的RAG 3种模型配置方法
  • Django REST Framework 入门指南:从 0 到 1 实现 RESTful API
  • Linux-局域网构建+VLAN 划分 + 端口 MAC-IP 绑定 + 静态 DHCP
  • Python 进阶学习之全栈开发学习路线
  • 如何删除 VSCode 账号的远程同步备份记录数据
  • 如何使用VScode使用ssh连接远程服务器不需要输入密码直接登录
  • 信息收集知识总结
  • LabVIEW液压机智能监控
  • gem install报错解析
  • 【C# in .NET】11. 探秘泛型:类型参数化革命
  • JAVA面试宝典 -《分布式ID生成器:Snowflake优化变种》
  • 基于CentOS的分布式GitLab+Jenkins+Docker架构:企业级CI/CD流水线实战全记录