既然我们知道该怎麽在虚拟机跟手机上显示撰写程序的结果了,那直接使用 TextView 动手写一个简单生日贺卡吧。
一开始跟我们第一个礼拜介绍的一样,先想好 App 里面的介面会是甚麽样子,有了初步的想法之後,就可以直接进入到 Android Studio 里面实作啦。
进入 Android Studio 後要先打开 activity_main_xml 的档案,路径可以从左边的档案总管那边找到(app > res > layout > activity_main.xml),快速连点两下就会跑出下面这张图的画面。
1:类似档案总管里面放着 project 的各式文件。
2:Palette 视窗,你可以直接从这个视窗添加你需要的各种 View。
3:Component Tree视窗:他会列出画面上所有的 View 。
4:你可以想像成 App 在手机上运行的样子。
5:Blueprint:在执行某种特定操作的时候,blueprint 非常有用。
6:Attributes:这边显示 View 的属性,你也可以直接在这里更改。
甚麽是 View ?简单来说你在手机应用程序里看到的各种元素,都算是 View ,View 也可以互动,像是按钮或是可输入的文字方块。
一般来说 View 不会单独浮在萤幕上,通常各个 View 彼此之间互相关联。如果要整理很多 View 的话都会把它们都放在一个容器( container )也叫做 ViewGroup,它负责
排列容器内的各个 View 。另外 ConstraintLayout 就是一种 ViewGroup ,帮你灵活的排列 Views 。
接下来进入制作卡片环节。
直接进入专案,再狠狠滴把中间的那个 hello world 用 delete 把他甩到一边去,你就会获得全白的画面,再从 Palette 视窗先拉一个 TextView 进画面里面:
哭阿怎麽有错误?
原来是他这需要一些限制 constraints ,这时候从右边的 Attributes 视窗:
点击 "+" 给他一点限制,我给他上面的距离是32,左边也是32这样程序就会知道该怎麽去放这个 TextView 。
在上面的 Declared Attributes 里可以修改 View 文字的内容:
右下角我们也照着同样方法放我们的署名,总是要让他知道是哪个小淘气这麽贴心:
贴心是贴心但字的样式好像不是很满意,这时候还是需要 attributes 去修改,在 Common Attribute 里面可修改:
(这边贴心小提示:记得要点选到你要修改属性的 View 右边的 attribute 视窗才是属於那个 View 的喔)
这边就可以调整字体样式,但是中文的字体就没有英文那麽多种类了。
文字的地方就先这样,接下来加一点图片让卡片更像卡片吧。
这时候准备一张好看的图片,这会成为整张卡片的重点,没有之一,因为整张卡片只有他。
下载好之後点选上方工具列 View > Tool window > Resouce manager ,再 Resource Manager 下面的 "+" ,再点选 Import Drawables。
找到你的图片 Import 进来,这时直接点选最左侧的 Project 就可以回到之前的页面啦。
接下来就从 Palette 把 ImageView 拉进手机画面里,别忘了替它加上 constrains。
图片是上来的,但是上下有空白也是挺奇怪的,可以从右边的 scaleType 选取 center crop ,画面应该会就被图片塞满了。
从 Component Tree 把它从最下面直接拖曳到最上面,也就是拖到最底层的意思。
这样看起来就是有模有样,收到的人看到这个没有哭泣就不是人,你也在朋友圈树立了一个专业 Android 工程师的形象,但可惜,你很喜欢的人也会用同样方式制作生日贺卡,但是她发现...
欸!?我 Component Tree 那边怎麽好像有点错误?
她急了,你笑了。
你笑不是因为嘲笑,而是你明天就知道这个问题怎麽解决,想到机会即将来临忍不住笑了出来。
今天就先这样,
下一篇见写写打家打家摆掰。
<<: 【心得】不同 gradient 使用方式-- radial-gradient()
>>: Day.24 Binary Search Tree II
第二个「V」要思考的数据问题是多样性Velocity,资料的格式有千百种,从数不完的副档名就知道。软...
K8s 在 DevOps 中的作用 K8s 是一套 Ops (Operation) 的工具,DevO...
今天就承接昨天说的前端 前端所使用的程序语言 我们这边以网页为例,前端所要用的程序语言主要有3个: ...
一. 神经网路 目前许多强大的NLP Model现在都是以神经网路为基础的模型,所以需要先了解以及认...
Django + MariaDB 在 Amazon Linux 2-Day 05 今天的目的是要让 ...