Android——用户界面设计(布局)

来源:互联网 发布:c语言获取随机数 编辑:程序博客网 时间:2024/05/18 23:54

布局文件所在的位置

Android布局文件存放在res/layout目录下

布局时的注意点

  1. 确定布局管理器类型。
  2. 在布局管理器中添加需要的组件。
  3. 修改Activity里的指向的布局文件。

Android基础组件

Android给我们提供了大量的UI控件,合理使用地使用这些控件就可以编写出界面。

XML

以<组件>开头,直接使用事<组件 />,示例

<组件> 开头,中间到<组件>之间 都是他包裹的内容    <组件  属性:值  属性:值.../>    <组件 />    <组件 />  </组件>

能包裹其他组件的,一定是布局

布局是没有界面的组件

整个文档一定是树状结构,只有一个根组件

LinearLayout:布局组件名称    线性布局RelativeLayout: 布局组件名称  相对布局xmlns:android="http://schemas.android.com/apk/res/android" :android 标准命名空间,能使用android官方定义的标准属性所有组件必须有宽和高layout_width: android标准属性(宽)layout_height: android标准属性(高)宽高 有3个常量:match_parent :匹配父窗体一样大             wrap_content :包裹内容 内容有多大,就有多大             fill_parent:过期了和match_parent相同的。

View常用属性

android所有UI组件以及UI布局管理器的父类,基本属性是所有组件通用

android:background  设置背景色/背景图片android:clickable  是否响应点击事件android:id  给当前View设置一个当前布局中的唯一编号android:onCLick 点击时从上下文调用指定的方法android:padding 设置上下左右控件内部与控件的边距,以像素为单位填充空白。android:visibiltiy 设置是否显示View//可选填值//visible(默认,显示)//invisible(不显示,但是仍然占有空间)//gone(不显示,不占空间)

TextView文本视图

TextView是Android中用的最多的控件,显示一行或多行文本,也可以给上下左右设置图片,并且结合SpannableString和其子类可以做到图文混排。

java.lang.Object    |-android.view.View        |-android.widget.TextView

TextView常用属性

注意:所有试图类都直接或者间接继承于View,共享View的所有属性或方法。

android:autoLink 描述当前文本是一个超链接android:singleLine 这是一个单行文本(不允许换行)android:text  文本框中的内容android:textColor 文字颜色android:textSize  文字大小 单位spandroid:textStyle 字体样式 普通、斜体、粗体android:typeface  字体格式  外部导入ttf字体android:maxLines  最大的行数 保持自己的高度,超出max后,固定到max行android:lines     行数    保持固定的行数的高度

Button 按钮

TextView子类,和TextView完全一样,只是多一个样式

ImageView 图片

android:src 前景图片android:scaleType 缩放方式 fit不按比例拉伸android:adjustViewBounds 图片在调整大小的时候,保持X、Y的比例 height在包裹内容的时候

布局管理器 ViewGroup

ViewGroup是View的容器,里面可以放很多View和ViewGroup
XML的根元素只有一个
每一个ViewGroup都有自己的特点,决定内部的元素是如何排列的

开放中,一般不直接使用View和ViewGroup,而是使用它的之类
一般对于画线来说是,直接使用View(v是大写的)

ViewGroup.LayoutParams    layout_height,layout_width;使用3个常量ViewGroup.MarginLayoutParams    layout_margin 外边距,组件与其父类布局之间的距离

LienarLayout线性布局管理器

特点:所有的组件按orientation来决定水平或垂直排列。

android:orientation 设置该布局的走向LienarLayout.LayoutParamslayout_gravity 组件的对齐方式(组件对于线性布局的对齐方式)水平方向可以上下移动(垂直方向可以左右移动)    layout_weight   权重(不按照尺寸排列,按照100%比例排列)水平方向(按权重改变宽度0dp)垂直方向(按权重改变高度0dp)

TableLayout表格管理器

继承于LienarLayout,使用百分比来调整宽度,高度包裹内容
每一个TableRow就是一行

特点不需要去实现宽度和高度,默认都是wrap_content,使用权重来调整宽度。

FrameLyout帧布局管理器

主要用来存放其他组件。作为Fragment的容器来使用的。布局的叠加。

特点:没有特点

AbsoluteLayout绝对布局管理器

因为不能和屏幕适配,所以被弃用

特点:所有组件都用x,y来标记左上角Layout_x,Layout_y

RelativeLayout相对布局管理器

布局中有15个特殊的方法

在父窗体居中(3个)(使用boolean值)

layout_centerHorizontal水平居中layout_centerVertical垂直居中layout_centerInParent整体居中

与父窗体对齐(4个)(使用boolean值)

layout_alignPreantLeft    左layout_alignPreantRight   右layout_alignPreantTop     上layout_alignPreantBottom  下

与其他组件对齐(4个+4个)

在其他组件的四个方向 必须要引用其他组件的id号layout_toLeftOflayout_toRightOflayout_abovelayout_below与其他组件的四个方向对齐 必须要引用其他组件的id号align_Leftalign_Topalign_Rightalign_Bottom

设置布局在界面中

在Activity(活动 界面)的onCreate方法中,使用setContentView(layout),来实例化XML中声明的所有组件。

标签

include 将另外一个布局文件,加入到当前的文件中, 布局重用。
merge 作为根布局使用的。使用include加入的时候,减少布局层次,层次不要超过4层.

findViewById

Activity,View都具有该方法,从一个Activity中或者一个View中去查找一个id号,返回一个组件。

  1. 当前没有设置布局,findViewById会返回一个null。
  2. 当前设置了布局,但是组件id却不在设置的布局中,返回一个null。
  3. findViewById写在设置布局的上面。
原创粉丝点击