Android中的布局layout与视图view
布局layout
定义:layout目录下一个个xml文件
新建布局界面
注意:文件名不能有大写字母;
文件命名,下划线分割
视图view
定义:xml文件里的一个个节点,对应页面上的元素
视图view的类型
①容器 ②子view(控件)
视图view的共有属性
- layout_width
- layout_height
- id
- gravity(控件内容的位置 right|center_vertical)
- layouut_gravity(控件的位置,与布局有关)
- background
创建布局和视图的两种方式
xml布局
java代码
Android中的常用容器视图
LinearLayout
线性布局:默认是horizontal
【补充:dp、sp是安卓中设计的与设备无关的长度单位,其中sp常用于字体】
【补充:layout_weight:将水平或垂直方向上剩余空间与各个控件按比例分配】
【补充:设置了orientation的值为vertical后,layout_gravity将垂直方向上无效,但可以作用于水平方向。
orientation为horizontal同理
】
RelativeLayout
相对布局
【相对位置:layout_below=“@id/tv_content”,表示设置当前控件位于id为 “tv_content”‘ 下方,其他同类属性同理】
【如果在相对布局中没有设置各个控件的相对位置属性,则最下方声明的控件会覆盖其上方声明的控件(若控件大小均相等则会实现完全覆盖),可利用相对布局实现层级覆盖的界面效果】
FrameLayout
帧布局
【格式化布局代码:Ctrl + Alt + L】
【图片自动撑满容器:scaleType=“centerCrop”】
【容器与容器之间可以嵌套,布局也可以相互嵌套】
其他布局容器
不常用的/已经逐渐淘汰的
- GridLayout
- TableLayout
ConstraintLayout
定义:比较新的一个google推荐使用的布局容器
使用
Android中的常用控件
篇幅有限,只讲一些常用的基本控件的基本用法
TextView
【Ctrl + Alt + O :一键删除导入却未使用的包】
【Ctrl + Shift + Enter: 光标定位至行末,并自动补全分号】
【Alt + Enter :自动生成一个本地变量】
【Ctrl + P: 查看方法参数提示】
【Ctrl + X: 可以实现删除一行】
应用自己的字体样式:
字体样式可以去网上下载,也可以直接应用自己电脑自带的字体资源:C盘–> Windows–>Fonts,然后引入到安卓中
实现过程
【解决Button上的英文全是大写:设置属性–textAllCaps = “false”】
实现跑马灯:
需要这两个属性联动,且需给TextView获取焦点
设置循环次数,以下方式设置为永远循环,可填写数值设置循环次数 如:XXX=“1”,只跑一次
Java代码中的基本操作
- 获取文字:getText()
- 设置文字:setText(“hello world”)
- 设置文字的样式(颜色,大小等)
EditText
【看源码知:EditText是继承TextView的,TextView有的属性同样适用】
【Ctrl + D : 可以向下复制一行】
设置光标到文字末尾
若果没有效果请加上让编辑框获取焦点的代码: etAccount.requestFocus();
Button
【看源码知:Button是继承TextView的,TextView有的属性同样适用】
设置背景颜色
若页面并没用更新成设置的颜色,解决如下
- 方案一:更改安卓默认的主题,因为默认的主题设置了一些它认为比较好的样式,找到themes.xml文件
- 方案二:使用兼容库
ImageView
【设置scaleType: centerCrop 属性,会使图片合适的缩放盛满容器】
java代码设置图片的src
CheckBox
- 记住密码 <----应用场景
RadioButton、RadioGroup
RadioGroup继承线性布局,故而有orientation属性
控件的可见性
设置为invisible,只是控件在页面不可见,仍占据相应的空间
设置为gone,不仅页面无此控件,且该控件原来占有的空间也会释放掉【可利用这个属性实现一些效果】