DAY17 第一个Android App

既然我们知道该怎麽在虚拟机跟手机上显示撰写程序的结果了,那直接使用 TextView 动手写一个简单生日贺卡吧。


一开始跟我们第一个礼拜介绍的一样,先想好 App 里面的介面会是甚麽样子,有了初步的想法之後,就可以直接进入到 Android Studio 里面实作啦。

进入 Android Studio 後要先打开 activity_main_xml 的档案,路径可以从左边的档案总管那边找到(app > res > layout > activity_main.xml),快速连点两下就会跑出下面这张图的画面。

https://ithelp.ithome.com.tw/upload/images/20211002/20140638IwL6Lxq1Li.png

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 。

接下来进入制作卡片环节。


插入你的 Textview

直接进入专案,再狠狠滴把中间的那个 hello world 用 delete 把他甩到一边去,你就会获得全白的画面,再从 Palette 视窗先拉一个 TextView 进画面里面:

https://ithelp.ithome.com.tw/upload/images/20211002/20140638ugaJdJPIkH.png

哭阿怎麽有错误?

https://ithelp.ithome.com.tw/upload/images/20211002/201406381fqFVmYz9b.png

原来是他这需要一些限制 constraints ,这时候从右边的 Attributes 视窗:

https://ithelp.ithome.com.tw/upload/images/20211002/20140638SeafeB7eUI.png

点击 "+" 给他一点限制,我给他上面的距离是32,左边也是32这样程序就会知道该怎麽去放这个 TextView 。

在上面的 Declared Attributes 里可以修改 View 文字的内容:

https://ithelp.ithome.com.tw/upload/images/20211002/201406384BadXTuVXP.png

右下角我们也照着同样方法放我们的署名,总是要让他知道是哪个小淘气这麽贴心:

https://ithelp.ithome.com.tw/upload/images/20211002/20140638byZj0P8xhS.png

贴心是贴心但字的样式好像不是很满意,这时候还是需要 attributes 去修改,在 Common Attribute 里面可修改:

(这边贴心小提示:记得要点选到你要修改属性的 View 右边的 attribute 视窗才是属於那个 View 的喔)

https://ithelp.ithome.com.tw/upload/images/20211002/201406381mPtVJr3DE.png

这边就可以调整字体样式,但是中文的字体就没有英文那麽多种类了。

文字的地方就先这样,接下来加一点图片让卡片更像卡片吧。


插入你的图片

这时候准备一张好看的图片,这会成为整张卡片的重点,没有之一,因为整张卡片只有他。

下载好之後点选上方工具列 View > Tool window > Resouce manager ,再 Resource Manager 下面的 "+" ,再点选 Import Drawables。

https://ithelp.ithome.com.tw/upload/images/20211002/20140638caiDV0ZYRu.png

找到你的图片 Import 进来,这时直接点选最左侧的 Project 就可以回到之前的页面啦。

接下来就从 Palette 把 ImageView 拉进手机画面里,别忘了替它加上 constrains。

https://ithelp.ithome.com.tw/upload/images/20211002/201406382bMCm0BozP.png

图片是上来的,但是上下有空白也是挺奇怪的,可以从右边的 scaleType 选取 center crop ,画面应该会就被图片塞满了。

https://ithelp.ithome.com.tw/upload/images/20211002/201406383DBCLZZC7c.png

从 Component Tree 把它从最下面直接拖曳到最上面,也就是拖到最底层的意思。

这样看起来就是有模有样,收到的人看到这个没有哭泣就不是人,你也在朋友圈树立了一个专业 Android 工程师的形象,但可惜,你很喜欢的人也会用同样方式制作生日贺卡,但是她发现...

欸!?我 Component Tree 那边怎麽好像有点错误?

她急了,你笑了。

你笑不是因为嘲笑,而是你明天就知道这个问题怎麽解决,想到机会即将来临忍不住笑了出来。

今天就先这样,

下一篇见写写打家打家摆掰。


<<:  【心得】不同 gradient 使用方式-- radial-gradient()

>>:  Day.24 Binary Search Tree II

DAY 8 Big Data 5Vs – Velocity(多样性) 资料结构

第二个「V」要思考的数据问题是多样性Velocity,资料的格式有千百种,从数不完的副档名就知道。软...

K8s 在 DevOps 中的作用

K8s 在 DevOps 中的作用 K8s 是一套 Ops (Operation) 的工具,DevO...

全端入门Day03_何谓全端之前端中篇

今天就承接昨天说的前端 前端所使用的程序语言 我们这边以网页为例,前端所要用的程序语言主要有3个: ...

[Day16] NLP会用到的模型(一)-前言

一. 神经网路 目前许多强大的NLP Model现在都是以神经网路为基础的模型,所以需要先了解以及认...

Django + MariaDB 在 Amazon Linux 2-Day 05

Django + MariaDB 在 Amazon Linux 2-Day 05 今天的目的是要让 ...