Android修行手册-初识TextView和阴影效果以及自定义粗细和链接形文字
👉关于作者
众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣!!!
专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等)
👉前提
文字是人类用符号记录表达信息以传之久远的方式和工具。几千年来我们都在乐此不疲地使用它。于你于我于她,没有高低贵贱之分。
这是小空坚持写的Android系列,欢迎品尝。
TextView是Android中最简单也是最常见的控件。今天小空就带大家会会她。
👉实践过程
😜初识
经过前两篇常用属性和不常用属性的讲解,是不是有些懵了,不要慌,真实开发中用到的属性其实连五分之一都到不了。
我们先来创建个基本的文本控件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
tools:context=".TextActivity">
<TextView
android:layout_width="match_parent"
android:layout_height="200dp"
android:text="爱是一道光,绿到你发慌"
android:textColor="#00ff00"
android:textSize="20sp" />
</RelativeLayout>
结合上面属性列表,运行效果是这样的:
那上面代码写的对吗?
对,一点都没错,否则怎么能看到效果了。
那还有更好的方式吗?
有,就是将text和textColor提出来,放到专门的文件里,text在【res-values-strings.xml中】,textColor在【res-values-colors.xml】中。
那么我们这么做的好处是什么呢?
你想象下有这么个场景:不同的页面都有相同的文本,在不同的页面布局有对应的TextView,这就存在多个text,当有一天需要修改这个文本的时候,你难道每个文本都改一遍(其实完全可以)?但是如果我们把text提出到【strings.xml】中,所有页面都能引用,以后遇见修改只需要修改【strings.xml】中的那一个文本就行了。
这就是文本配置文件,同理color是在颜色配置文件中【colors.xml】。
解决国际化需求也只需要再提供一个英文的【string.xml】即可。
😜文字阴影
某天,产品经理过来提需求了:小空啊,文本看起来一般啊,咱能更强大些吗?比如,立体些,你知道的,那样更有吸引力。
小空不搭理他,直接反手就是代码,必须要用该属性秀他一脸。
- android:shadowColor:设置阴影颜色
- android:shadowRadius:设置阴影模糊程度,必须要有该属性
- android:shadowDx :设置阴影在水平方向的偏移,向右为正,向左为负
- android:shadowDy:设置阴影在竖直方向的偏移,向下为正,向上为负
<TextView
android:id="@+id/myTest"
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_centerInParent="true"
android:layout_gravity="bottom"
android:gravity="center"
android:text="@string/test"
android:textStyle="normal"
android:shadowColor="#ff0000"
android:shadowRadius="10"
android:shadowDx="20"
android:shadowDy="20"
android:textColor="@color/green"
android:textSize="26sp" />
😜TextView自定义粗细和链接形文字
我们先给文字设置了字体,颜色和大小基础属性
<TextView
android:layout_width="match_parent"
android:layout_height="200dp"
android:text="爱是一道光,绿到你发慌"
android:textColor="#00ff00"
android:textSize="20sp" />
- android:layout_width: 文本控件的宽度,match_parent代表填充满父类,wrap_content代表文本内容多少宽度就是多少,还能写具体的dp尺寸。
- android:layout_height: 文本控件的高度,match_parent代表填充满父类,wrap_content代表文本内容多少宽度就是多少,还能写具体的dp尺寸。
之后再给他增加文字内部居中对齐和相对父类的居中对齐。
<TextView
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_centerInParent="true"
android:gravity="center"
android:text="爱是一道光,绿到你发慌"
android:textColor="#00ff00"
android:textSize="20sp" />
除此之外,自身内部的对齐方式还有:
- android:gravity=“left”:文本相对文本View控件左对齐。
- android:gravity=“right”:文本相对文本View控件右对齐。
- android:gravity=“center_horizontal”:文本相对文本View控件水平居中。
- android:gravity=“center_vertical”:文本相对文本View控件垂直居中。
- android:gravity=“bottom”:文本相对文本View控件底部对齐。
- android:gravity=“top”:文本相对文本View控件右对齐。
注意任何的对齐方式都可以利用符号【|】来表示【且】的关系。
android:gravity=“right|bottom”:代表右对齐以及底部对齐,真实效果是显示在控件右下角
那么,除了上面小空说的控件View自身的对齐方式外,也有相对于父布局View的对齐方式:
如果父布局是LinearLayout,则可以使用android:layout_gravity=""属性,双引号内对齐方式和上面的android:gravity类似,包含(left,right,center_horizontal,center_vertical,top,bottom)而父View如果是RelativeLayout的话,对齐方式如下:
- android:layout_alignParentStart=“true”:该View相对在父View内部左侧对齐
- android:layout_alignParentLeft=“true”:该View相对在父View内部左侧对齐
- android:layout_alignParentTop=“true”:该View相对在父View内部顶部对齐
- android:layout_alignParentEnd=“true”:该View相对在父View内部右对齐
- android:layout_alignParentRight=“true”:该View相对在父View内部右侧对齐
- android:layout_alignParentBottom=“true”:该View相对在父View内部底部对齐
- android:layout_centerInParent=“true”:该View相对在父View内部居中
- android:layout_centerHorizontal=“true”:该View相对在父View内部水平居中
- android:layout_centerVertical=“true”:该View相对在父View内部垂直居中
👉其他
📢作者:小空和小芝中的小空
📢转载说明-务必注明来源:
https://zhima.blog.csdn.net/
https://www.zhihu.com/people/zhimalier
https://juejin.cn/user/4265760844943479
📢这位道友请留步☁️,我观你气度不凡,谈吐间隐隐有王者霸气💚,日后定有一番大作为📝!!!旁边有点赞👍收藏🌟今日传你,点了吧,未来你成功☀️,我分文不取,若不成功⚡️,也好回来找我。
- 点赞
- 收藏
- 关注作者
评论(0)