大家最感兴趣的估计是这一讲了。Android Studio 允许使用拖拽的的方式设计布局(界面),但是我不推荐这样,因为这种方式设计出来的通常都不具有很好的屏幕适配性,就是说换个设备,很可能你的界面就变了。
注:Android Studio 2.2 已经解决了拖拽设计的兼容性问题,但是绝对不是简单的拖上去就可以了。而且这个设计也不是为了操作方便,而是为了在复杂的布局的情况下提升运行效率。这种方法暂时尚未普及,故本节不会介绍。以后作为拓展介绍给大家。想先了解的可以查一查 ConstraintLayout 。
我们新建一个项目 UITest ,其余都默认。下面的动图演示了 Android Studio 和 AIDE 新建这次这个项目:
小提示:出现下图的错误时,点击 Android Studio 顶栏的 build 选择 rebuild 即可。
1x1 TextView
TextView 是用来显示一段文本的控件。之前我们其实看过他,还记得那个 Hello World 吗?没错就是他。下面我们就来学习他。修改 activity_main.xml 中的代码。
tips:注意 Android Studio 需要先修改根布局:LinearLayout (线性布局)。关于他,后面还会详细介绍。这一步操作详见动图。
下面的动图演示了 Android studio 和 AIDE 下的操作。
现在我们的 activity_main(AIDE 应该是 main)里面应该是这样的
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical">
<TextView
android:text="这是一个 TextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/text_view"/>
</LinearLayout>
最外边的 LinearLayout 我们先忽略他,我们日后会重点讲他,你现在可以把他当作一个容器,用来放置 TextView 。在 TextVIew 下先用 「android:text="这是一个 TextView" 」 来给当前的控件,也就是 TextView 指定了他显示的文字。然后通过「android:layout_width="match_parent" 」 指定了这个控件的宽度,「android:layout_height="wrap_content"」 指定了这个控件的高度。Android 中所有的控件都有这两个属性,他有两个值可选:「wrap_content」 ,「match_parent」。「wrap_content」 表示让当前控件的大刚好容纳里面的内容;「match_parent」表示让控件充满父布局,和父布局的大小一样,其实还有个「fill_parent」这个已经废弃了,等效于「match_parent」。哦对了,你也可以指定一个宽度,单位是 dp:「android:layout_width=10 dp 」 。最后通过「android:id="@+id/text_view"」给这个控件定义了一个 ID ,相当于分配给了他一个身份证,方便我们去调用它。
我们运行一个看看效果如何:
不知道你有没有发现,界面上的文字也并没有充满屏幕。这是因为我们的文字太少,而且 TextView 默认左上角对齐。我们现在就在 TextView 里加一行「android:gravity="center"」 来指定 TextView 的文字对齐方式
我们使用「android:gravity=」来指定文字的对齐方式,可选的值有:「top」「bottom」「left」「right」「center」等,当然了,也可以使用 「|」来同时指定多个值:「top | bottom」。运行程序,可以看到已经居中了,这里就不演示了。
还可以设置文字的大小和颜色,继续加入「android:textColor="#00ff00"」「android:textSize="24sp"」
「android:textColor="#00ff00"」指定了颜色为绿色,其中 #00ff00 是绿色的代码表示。「android:textSize="24sp"」指定了文字大小为 24 sp。
tips:Android 中文字的大小的单位是 sp
TextView 还有很多的属性,大家在需要时请善用搜索引擎,没什么是查不到的,学习能力可是硬实力。
这里再给大家介绍一个 TextView 实现跑马灯效果的小技巧,在文字很长超出屏幕时很有用。其实在 TextView 里加入如下代码即可(注意不要把注释粘贴进去哦)。
<!--指定文字超出屏幕时的显示方式-->
<!-- start:在开头省略; middle:在中间省略; end:在尾部省略;marquee:跑马灯显示-->
android:ellipsize="marquee"
<!--设置可获得焦点-->
android:focusable="true"
<!--设置在触摸时可获取焦点-->
android:focusableInTouchMode="true"
<!--设置循环次数;marquee_forever是无限-->
android:marqueeRepeatLimit="marquee_forever"
<!--设置水平滚动-->
android:scrollHorizontally="true"
<!--设置单行显示-->
android:singleLine="true"
<!--正常情况下以上属性一个都不能少,但是你要是在代码里控制了那另当别论-->
老规矩,动图奉上
2x1 总结
今天我们梳理了 TextView 的各种属性,还弄了一个跑马灯。有人问我说电脑的动图看不清,确实不太清晰。这是微信压缩了图片,我今天部分小节上传了视频。其实每一个都有视频,但是微信只允许上传三个,所以我就只挑了 3 个复杂一些的上传了。明天我们讲 button 和他的点击事件,聪明的你要不要预习一下?
2020/5/24 注:
这是我 2018 年高中毕业的假期写的,当时并没有自己搭建博客,近期我给这一系列的文章都放到我自己的博客上。
当时写这个系列文章的想法就是扎实下基础,然后能帮到更多的人就更好了,但是大学开学之后就开始了新生活,没有大块的时间去编撰,系列文章也没有再更新过。但是我其实并不想放弃这个系列,那就,有缘再见吧,拜拜ヾ(•ω•`)o