【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
用于控制视图内容或者视图自身在容器里的位置。它的取值可以是单个方向(像 top
、left
),也能是组合方向(例如 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下的一个安卓图标