app包下的清单文件
Java下的目录
主要的java代码文件在第一个包中,其他两个包用作测试用
res目录
drawable目录主要是存放界面的资源
layout目录主要存放的是布局文件
mipmap目录主要存放的是图标的资源
values主要存放的颜色,字符串,尺寸,风格相关可以在布局中被调用的资源
在Android中资源文件都被保存在app/res目录下
资源的定义
我们若想调用资源就必须在app/res/values目录下创建对应的xml文件,比如dimens.xml尺寸相关的xml文件,style风格相关的xml文件等等
所有的资源文件都是以<resource></resource>的格式开始,我们在两个resource中间输入要设置的资源
XML布局中调用图片资源
1、@mipmap/ic_laucher
2、@drawable/icon
mipmap和drawable这两个目录主要存放的是图标和界面的一些图片资源
主题和样式资源
主题资源定义在/res/values中的styles.xml文件中,同样它需要定义<resource></resource>,并在其中间去设置资源,定义主题的标签是<style></style>,当然可以在resource中定义多个风格,即多个style标签,同时可以在<style></style>标签中设置多个<Item>标签。
同时我们可以创建自己定义的风格为view控件设置风格
总结
总的来说资源的定义多种多样,无论是布局,颜色还是其他什么都视为资源,我们可以用
@资源类型/资源名称,如果在当前布局定义了控件,比如使用Android:id="@id+/kk",那么我们就可以使用@id/kk的方式在相对布局中去利用该控件做一些位置上的调整。
布局的通用属性
1、首先是布局的标识与控件的定义一致,我们同样可以使用“android:@+id/名字”的方式去创建一个布局的标识。
2、一般来说布局的宽度总是与屏幕相关,比如设置为match_partent,将布局设置为充满屏幕,然后在到布局中去设置其他的控件
3、布局高度与宽度类似
4、布局的背景,设置该布局的整个呈现
5、layout_margin,主要是设置该布局中的控件与该布局四周的距离,比如该项设置为40dp,那么所有控件都必须 离这个布局的四周40dp的距离。我们也可以对布局的上下左右其中一项与控件的距离进行设置,比如layout_marginTop,layout_marginButton,layout_marginLeft,layout_marginRight ,这一个设置可以说是总体的设置,因为所有的控件都必须遵守这个规则,即使该约束是布局的约束,所有人都必须遵守的约束。
6、layout_padding,这个域margin类似,不过是对某个控件进行设置,比如设置某个控件与布局的距离是20dp,那么它就会在原来的位置的基础上达到这个距离,这个距离针对的是该控件的上下左右四个方向,同样我们也可以针对某个控件的某个方向,比如layout_paddingTop,layout_paddingButton,layout_paddingRight,Button_paddingLeft
总结:
首先每个布局都必须设置它的高度,以及宽度。当然布局的背景也是必须的。同时,布局的全局属性,即每个控件与布局之间的距离关系。同样的我们针对整体,也必须针对个体,所以使用padding对控件与布局之间想要保持的距离进行设置。
相对布局
相对布局如它的名字一般,在该布局中所有的控件的位置都是以其他view控件定义的,比如父布局,父控件,其他控件。
相对布局的属性
1、center*:以center开头,其代表以布局作为位置定义的凭据,比如centeInParent就代表在该布局中的中央。又比如如果没有设置它的水平位置,仅仅设置该项,即centerVertical,那么它就会它现存的的水平位置下的直线中的中点位置。如果仅仅设置centerHorizon,那么它就会在现存的垂直位置的水平直线的中点。
2、to*Of:该属性的意思就是在某个控件的某个上下左右其中一个方向,比如某个控件设置了toRightOf=”@id/A“,即设置在A控件的右边,那么该控件的左边界所在的直线就会在A控件右边界所在的直线的重合。需要注意的是,toRightOf属性的设置并不会使该控件直接飞到对应的控件的右边,只不过是左边界所在的直线与对应控件右边界所处直线的重合。
3、align*:align的意思是对齐,也就是该属性的意思是与其他控件对齐,那么对齐就分为上下左右对齐,分别为align[ Right | Left | Top | Button ],比如有两个文本框,它们右对齐就是就是右边界处于同一条直线。
4、alignParent*:该属性代表某个控件与它的父控件的某个方向对齐,比如布局与布局内部控件的关系就是父控件与控件的关系,那么如果我们设置子控件与它的父控件对齐,比如对齐底部,那么该控件就会直接飞到该布局的底部,该控件的下边界所处的直线就会与布局的底部重合。
线性布局
线性布局如其名,控件的位置要么就是水平的线性排列,要么就是垂直的线性排列。
水平排序:android:orientiation=”horizon“
垂直排序:android:orientiation="vertical"
排序比重
由于线性布局中的控件都是一个接一个的进行排序,那么在控件在序列中的比重是平均的还是分散的,可以使用android:layout_weight属性为控件定义在排序中的比重,假设我们某个线性布局中使用了三个默认大小的按钮控件,一般来说这三个按钮是不会将其所处的水平方向的行填补完全的,但是我们如果我在按钮中设置了其在比重,那么就可以对按钮在该行的比例进行大小的调整