这是我参与8月更文挑战的第4天,活动详情查看:8月更文挑战
从使用 Android 基本 View 开始
上一篇说到 View 的功能和优点,现在就是实践写 View 代码的时间了。根据我 4 年的工作经历,虽然系统提供了千奇百怪的 View,但我们实际工作常用的很有限,只需要学会常用的大概十几个 View,就能应付绝大多数需求了。
今天直接进入实践,上最终效果:
一个这样的页面是不是稍微有点 App 的感觉了?这个页面只需要编写 xml 就能实现,而且在 Android Studio 里还能实时预览,这也是 View 框架的优点。
首先是一个可滑动的效果,需要用到 ScrollView
。ScrollView
可以选择横向或者纵向,默认纵向。
layout_width
和 layout_height
是每个 View 都必备的属性,用于描述 View 的尺寸,可以是 wrap_content
、match_parent
或者固定值(通常采取dp单位)。wrap_content
代表取能包裹自身内容的最小值,match_parent
代表取允许范围内的最大值,固定值则不进行计算,直接取当前输入的值。
「dp」是 Android 特有长度单位,表示一种与「屏幕像素密度」无关的长度,可以保证在不同的手机屏幕上,相同 dp 值显示的物理尺寸相同。类似的单位还有字体专用的 「sp」,默认情况下二者计算结果相同,但手机设置中的字体大小设置会影响 sp 的计算结果,所以文字尽量用 sp,但希望不受设置影响的文字也可以用 dp。
接下来是一个 LinearLayout
,LinearLayout
会按一个方向依次排列子 View,默认为横向,所以我们手动设置 orientation 为 vertical。
接下来依次写入我们需要的 View,上面说明 View 内容的标签本身也是一个 TextView。下面的 View 基本没有设置额外属性,按照标签了解一下不同 View 的视觉效果即可,不再贴代码了。(代码有点多,建议直接看 github 上的文件:activity_base_view_demo.xml)
再看两张静态效果图吧,系统提供的 View 通常有默认样式,在此基础上按需调整样式也是 Android 开发者的日常工作之一。
View 的使用有很多相似之处,比如各种能显示文字的 View 都通过 android:text 设置文字内容,见得多了就会下意识反应,所以前期随用随查即可,不用刻意背什么标签。
结
但是按这个节奏写下去,绘制知识体系可能会有很多很多篇,就变成了一直学习却写不出 App。所以 View 的一些原理和自定义 View 相关的内容暂缓一下,说完上一期列出的 View 的用法之后就开启后面的内容。
周内的文章时间有限,自我感觉内容还是太少了,大家有什么丰富内容建议能教教我吗(或许有人看到的话),救救孩子!