Android UI布局

一.线性布局(LinerLayout)
(1.)android:orientation(设置方向的属性)两个方向的重要属性(vertical垂直,horizontal水平)
(2)方向上的比重属性(layout_weight)
当layout_width与layout_height的值为wrap_content时设置一个layout_weight属性,则按照正常比例分配
(3.)layout_gravity和gravity的区别
1.android:gravity:这个是针对控件里的元素来说的,用来控制元素在该控件里的显示位置。例如,在一个Button按钮控件中设置如下两个属性,
android:gravity="left"和android:text=“提交”,这时Button上的文字“提交”将会位于Button的左部。
2.android:layout_gravity:这个是针对控件本身而言,用来控制该控件在包含该控件的父控件中的位置。
android:layout_gravity="left"属性时,表示该Button按钮将位于界面的左部。
这两个属性可选的值有:top、bottom、left、right、center_vertical、fill_vertical、center_horizontal、fill_horizontal、center、fill、clip_vertical。
a. top
将对象放在其容器的顶部,不改变其大小.
b.bottom
将对象放在其容器的底部,不改变其大小.
c. left
将对象放在其容器的左侧,不改变其大小.
d. right
将对象放在其容器的右侧,不改变其大小.
e. center_vertical
将对象纵向居中,不改变其大小. 垂直对齐方式:垂直方向上居中对齐。
f. fill_vertical
必要的时候增加对象的纵向大小,以完全充满其容器. 垂直方向填充
g.center_horizontal
将对象横向居中,不改变其大小. 水平对齐方式:水平方向上居中对齐
h.fill_horizontal
必要的时候增加对象的横向大小,以完全充满其容器. 水平方向填充
m. center
将对象横纵居中,不改变其大小.
n. fill
必要的时候增加对象的横纵向大小,以完全充满其容器
o. clip_vertical
用于按照容器的边来剪切对象的顶部和/或底部的内容. 剪切基于其纵向对齐设置:顶部对齐时,剪切底部;底部对齐时剪切顶部;除此之外剪切顶部和底部垂直方向裁剪
p. clip_horizontal
用于按照容器的边来剪切对象的左侧和/或右侧的内容. 剪切基于其横向对齐设置:左侧对齐时,剪切右侧;右侧对齐时剪切左侧;除此之外剪切左侧和右侧.水平方向裁剪

二.相对布局(RealateiveLayout)
(1).控件位置灵活多变的
(2).控件的属性比较多,但都是有规律可循的,所以结合案例多练习,不难记忆这些属性。

三表格布局(TableLayout)
1、如果我们直接往TableLayout中添加组件的话,那么这个组件将占满一行!!!
2、如果我们想一行上有多个组件的话,就要添加一个TableRow的容器,把组件都丢到里面!
3、tablerow中的组件个数就决定了该行有多少列,而列的宽度由该列中最宽的单元格决定tablerow的layout_width属性,默认是fill_parent的,我们自己设置成其他的值也不会生效, 但是layout_height默认是wrapten——content的,我们却可以自己设置大小! 整个表格布局的宽度取决于父容器的宽度(占满父容器本身)
4、有多少行就要自己数啦,一个tablerow一行,一个单独的组件也一行!多少列则是看tableRow中 的组件个数,组件最多的就是TableLayout的列数

五.百分比布局PercentRealateiveLayoutPerentFrameLayout
app:layout_heightPercent:用百分比表示高度
app:layout_widthPercent:用百分比表示宽度
app:layout_marginPercent:用百分比表示View之间的间隔
app:layout_marginLeftPercent:用百分比表示左边间隔
app:layout_marginRight:用百分比表示右边间隔
app:layout_marginTopPercent:用百分比表示顶部间隔
app:layout_marginBottomPercent:用百分比表示底部间隔
app:layout_marginStartPercent:用百分比表示距离第一个View之间的距离
app:layout_marginEndPercent:用百分比表示距离最后一个View之间的距离
app:layout_aspectRatio:用百分比表示View的宽高比

六.约束布局(ContrainerLayout)
. 为了定义在约束布局中视图的位置,你必须为视图添加两个或更多约束条件。每个约束代表了和另个视图、父布局或不可见指引线的联系或对齐。每个约束限定了视图是沿着垂直轴还是水平轴的位置,所以每个视图必须在每个轴最少拥有一个约束,但经常需要更多。
当你往布局编辑器中拖拽一个视图时,它会停留在你扔下它的位置,即使它没有任何约束。然鹅,这只是为了使编辑更简单。当一个视图没有任何约束时,你在设备上运行起来后,它会被绘制在左上角[0,0]的位置。
在图2里面,布局在编辑器中看起来不错,但是对于TextView B没有对其进行竖直方向上的约束。当这个布局被绘制到设备上时,TextView B会在水平方向上水平与ImageView的左右边缘对齐,但是出现在屏幕的顶部,因为它没有数值方向上的约束。

七.自定义控件
1.创建一个布局
2.自定义的布局,做成自定义控件
3.在我们需要的地方引用自定义控件
4.自定义对话框
a.设置布局(dialog_layout)
b.设置Style(style.xml)
c.自定义Dialog(继承Android自带的Dialog,实现自定义 的,为相关的按钮设置点击事件
d.显示show();

八.ListView
(1)什么是List View
ListView是比较常用的组件,它以列表的形式展示具体内容,并且能够根据数据的长度自适应显示
(2)如何实现List View
1.创建List View视图
2.Adapter(Java类)【最简单的ArrayAdapter,它一行只能显示一个空间,如果想显示多个,需要自定义Adapter
3.准备数据
(3)List View应用场景
例如收银台等场景下的单activity,大量不同的模块化可配界面和各种嵌套弹框,以及带来的界面数据传输问题。旨在解决多重嵌套下fragment的先天性不足,以及帮助开发者解决不同view下的数据传输问题。
(4).自定义实现Adapter
1.(优化)ListViewItem视图缓存(hodeview)
2.定义List View的Header
3.给每一个Item添加监听事件(长按点击事件)
4. 给Item里的控件添加监听事件

九.RecycleView
(1).添加依赖
1.打开File —> Project
Structure或点击快捷图标或者快捷键ctrl+shift+alt+s
2.选中app —> Dependencies—> 点击加号 —> Library dependence
3.在选择框中输入recyclerview
4.成功添加
(2)导入ListViewDemo相关文件
1.导入ListViewDemo创建的Hero和HeroList源文件
2.导入ListViewDemo的资源文件(图片文件)
3.导入ListViewDemo的item布局文件
4.创建RecyclerView布局文件

十.创建Adapter

十一.制作Nine-Patch

更多相关文章

  1. Android(安卓)API 中文 (51) —— ZoomButtonsController
  2. 用Android自带的DrawerLayout和ActionBarDrawerToggle实现侧滑效
  3. Android(安卓)API 中文 (52) —— ZoomButtonsController.OnZoomLi
  4. Android(安卓)KeyEvent分发机制
  5. Android(安卓)onTouch、OnLongClick、onClick及ScrollView滑动事
  6. Android(安卓)Inflate方法
  7. Android(安卓)自定义RecyclerView 实现真正的Gallery效果
  8. Android(安卓)listview 实现列表多选
  9. Android_Layout_xml布局

随机推荐

  1. Android通过WebView实现原生Java与JS交互
  2. Android(安卓)低功耗(BLE)蓝牙(三)
  3. H5跟ios、android数据对接
  4. Android--控件Button的详细用法介绍(适合
  5. 如何提交Code到google open source andro
  6. Android的分辨率支持
  7. Android(安卓)内容提供器---内容提供器基
  8. Android获取双卡双待手机的SIM卡信息示例
  9. 微信消息中的电话超链接(ios vs Android)
  10. Firefox常见问题总结