登录后台

页面导航

本文编写于 2415 天前,最后修改于 1668 天前,其中某些信息可能已经过时。

大家最感兴趣的估计是这一讲了。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"」

1525621536581

「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