Android修行手册-初识TextView和阴影效果以及自定义粗细和链接形文字

举报
芝麻粒儿 发表于 2022/03/25 15:48:36 2022/03/25
【摘要】 👉关于作者众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣!!!专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等) 👉前提文字是人类用符号记录表达信息以传之久远的方式和工具。几千年来我们都在乐此不疲地使用它。于你于...

👉关于作者

众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣!!!

专注于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>

结合上面属性列表,运行效果是这样的:

image.png

那上面代码写的对吗

,一点都没错,否则怎么能看到效果了。

那还有更好的方式吗?

,就是将text和textColor提出来,放到专门的文件里,text在【res-values-strings.xml中】,textColor在【res-values-colors.xml】中。

image.png

那么我们这么做的好处是什么呢

你想象下有这么个场景:不同的页面都有相同的文本,在不同的页面布局有对应的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" />

image.png

😜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
📢这位道友请留步☁️,我观你气度不凡,谈吐间隐隐有王者霸气💚,日后定有一番大作为📝!!!旁边有点赞👍收藏🌟今日传你,点了吧,未来你成功☀️,我分文不取,若不成功⚡️,也好回来找我。

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。