您的位置:首页 > 移动开发 > Android开发

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

2017-07-24 12:28 204 查看

布局文件所在的位置

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

布局时的注意点

确定布局管理器类型。

在布局管理器中添加需要的组件。

修改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  文字大小 单位sp
android: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.LayoutParams
layout_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_toLeftOf
layout_toRightOf
layout_above
layout_below

与其他组件的四个方向对齐 必须要引用其他组件的id号
align_Left
align_Top
align_Right
align_Bottom


设置布局在界面中

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

标签

include 将另外一个布局文件,加入到当前的文件中, 布局重用。

merge 作为根布局使用的。使用include加入的时候,减少布局层次,层次不要超过4层.

findViewById

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

当前没有设置布局,findViewById会返回一个null。

当前设置了布局,但是组件id却不在设置的布局中,返回一个null。

findViewById写在设置布局的上面。

4000
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android xml ui 布局