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

【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.dtcms.com/a/282504.html

相关文章:

  • 【Fedora 42】Linux内核升级后,鼠标滚轮失灵,libinput的锅?
  • 颠覆NLP十年范式!OpenCSG中文数据集助推CMU无分词器模型登顶SOTA
  • Jetpack Compose 中 Kotlin 协程的使用
  • 重学SpringMVC一SpringMVC概述、快速开发程序、请求与响应、Restful请求风格介绍
  • 【iOS】源码阅读(六)——方法交换
  • Flutter基础(前端教程①①-底部导航栏)
  • 中医舌诊学习软件,图文视频详解
  • Flutter Web 的发展历程:Dart、Flutter 与 WasmGC
  • 2025华为ODB卷-箱子之字形摆放100分-三语言题解
  • 文字图标设计-色彩魔方:动态变色技术实现场景自适应 大学毕业论文——仙盟创梦IDE
  • 【Unity】Mono相关理论知识学习
  • 深入核心:理解Spring Boot的三大基石:起步依赖、自动配置与内嵌容器
  • Kafka——生产者压缩算法
  • IsaacLab学习记录(一)
  • opencv 值类型 引用类型
  • Hadoop架构演进:从1.0到2.0的深度对比与优化解析
  • ARCGIS PRO DSK 颜色选择控件(ColorPickerControl)的调用
  • Lumerical Charge ------ 运行 PN 结仿真
  • 74、搜索二维矩阵
  • Python+Tkinter制作音频格式转换器
  • PDF 转 Word 支持加密的PDF文件转换 批量转换 编辑排版自由
  • lua(xlua)基础知识点记录
  • 非控制器(如 Service、工具类)中便捷地获取当前 HTTP 请求的上下文信息
  • SQL,在join中,on和where的区别
  • HTTP性能优化实战
  • GeoTools 基础概念解析
  • 5-Nodejs-npm与第三方模块
  • smolagents - 如何在mac用agents做简单算术题
  • 导入无人机航拍屋顶,10分钟智能铺设光伏板
  • 基于 Drools 的规则引擎性能调优实践:架构、缓存与编译优化全解析