控件布局
所谓的控件布局方法,就是指控制控件在Activity当中的位置、大小、颜色以及其他控件样式属性的方法。

布局方法
linear layout 线性布局
relative layout 相对布局
FrameLayout 框架布局
TableLayout 表格布局
AbsoluteLayout 绝对布局

listview 列表布局

gridview 网格布局

Linear Layout

android:orientation = “vertical” 垂直方向layout
android:orientation = “horizontal” 水平方向layout

距离单位

px:像素单位,例如手机的800*480,其中一个点就是1个px

dpi:每英寸点的数量

android view 约束布局 android布局的宽度值_android view 约束布局


height = 800 width = 480 size = 4.3英寸

dp:
dp = dip(Device Independent pixels)
换算公式 px = dp*(dpi/160)
在dpi 为160的屏幕上: 1dp =1px;

px = dp*ppi/160
dp = px / (ppi / 160)
px = sp*ppi/160
sp = px / (ppi / 160)

sp(scaled pixels):
sp单位通常用于指定字体的大小,当用户修改手机显示字体时,sp会随之改变。

通常设置控件的宽度和高度使用dp,设置控件字体用sp

内外边距

android view 约束布局 android布局的宽度值_android_02


view

viewgroup

button

textview

checkbox

radio

editText 输入文本框,里面可以预先写一些文本,例如登陆框

android:hint = “username”

<TextView  android:gravity = “center” />  //居中设置

android:gravity:用于设置View组件里面内容的对齐方式
android:layout_gravity:用于设置容器的对齐方式

LinearLayout 线性布局
布局:规范控件的摆放方式

layout_weight属性
1、 子控件并未占满父控件的所有空间
2、 值为整型,用于指定空闲空间的分配比例

RelativeLayout 相对布局
相对布局是通过指定当前控件与兄弟控件或者父控件之间的相对位置,从而达到控制控件位置的目的。

如不指定控件位置,将自动放置到activity的左上角,多个控件会形成覆盖

对齐到指定控件
android:layout_below=”@id/hello”: 当前控件的上边缘对齐对指定控件下边缘
android:layout_above: 当前控件的下边缘对齐对指定控件上边缘
android:layout_toLeftOf: 当前控件的右边缘对齐对指定控件左边缘
android:layout_toRightOf: 当前控件的左边缘对齐对指定控件右边缘

android:layout_alignLeft=”@id/hello”: 当前控件的左边缘对齐对指定控件左边缘
android:layout_alignRight: 当前控件的右边缘对齐对指定控件右边缘
android:layout_alignTop: 当前控件的上边缘对齐对指定控件上边缘
android:layout_alignBottom: 当前控件的下边缘对齐对指定控件下边缘

对齐到父控件
android:layout_alignParentLeft = “true”: 当前控件的左边缘对齐到父控件左边缘
android:layout_alignParentRight: 当前控件的右边缘对齐到父控件右边缘
android:layout_alignParentTop: 当前控件的上边缘对齐对父控件上边缘
android:layout_alignParentBottom: 当前控件的下边缘对齐父控件下边缘

android:layout_centerInParent= “true”:对齐到父控件水平垂直中央
android:layout_centerHorizontal:对齐到父控件水平中央位置
android:layout_centerVertical:对齐到到父控件垂直中央位置

控件的基准线
android:layout_alignBaseline =”@id/hello” //对齐到指定控件的基准线

android:id=”@+id/hello” //+id代表设置一个id
android:layout_toRightOf=”@id/hello” //@id代表引用一个已经存在的id

android4.2新加入的属性
android:layout_alignStart: 对齐到指定控件起始位置
android:layout_alignEnd: 对齐到指定控件中止位置
android:layout_alignParentStart: 对齐到父控件的起始位置
android:layout_alignParentEnd: 对齐到父控件的中止位置

frameLayout 框架布局
所有添加到这个布局中的视图都是以层叠的方式显示。第一个添加到框架布局中的视图在最底层,最后一个被放在最顶层,上一层的视图会覆盖下一层的视图,因此框架布局类似堆栈布局。
属性
top 将视图放到屏幕的顶端
buttom 将视图放到屏幕的低端
left 将视图放在屏幕的左端
right 将视图放在屏幕的右端
center_vertical 将视图按照垂直方向居中显示
horizontal_vertical 将视图按照水平方向居中显示

TableLayout表格布局
在表格布局中,一个列的宽度由该列中最宽的那个单元格决定,而表格的宽度是由父容器指定的。在TableLayout中,可以为列设置三种属性:
Shrikable:如果一个列被标识为Shrinkable,则该列的宽度可以进行收缩,以使表格能够适应其父容器的大小。
Stretchable:如果一个列被标识为Stretchable,则该列的宽度可以进行拉伸,以使填满表格中的空闲空间。
Collapsed:如果一个列被标识为Collapsed,则该列会被隐藏
注意:一个列可以同时具有Shrikable和Stretchable,在这种情况下,该列的宽度将任意拉伸或收缩。
TableLayout继承自LinearLayout类,除了继承来自父类的属性和方法,TableLayout类还包括表格布局所有的属性和方法

时间与日期

TimePicker //时间选择
DtaePicker //日期选择
AnalogClock //模拟时钟

OnTimeChangedListener接口 当改变上面时间选择触发的监听器

ProgressBar 进度条
ProgressBar所有进度条的父类

<ProgressBar
style =”?android:attr/progressBarStyleHorizontal”  //水平风格进度条
/>

horizontal:水平风格
small:小风格
large:大风格
inverse:反向风格
small.inverse:小反向风格
large.inverse:大反向风格

进度条属性
最大进度:max
当前进度:progress
次要进度:SecondaryProgress
一个例子:

<ProgressBar
        android:id="@+id/firstProgressBar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:max =”200”
        android:progress = “100”
        android:secondaryProgress=”150”
        style="?android:attr/progressBarStyleHorizontal" />

progressBar.isIndeterminate();判断是否是转圈的进度条
progressBar.incrementProgressBy(10);在当前主进度中增加10
progressBar.incrementSecondaryProgressBy(10);在当前第二进度中增加10

SeekBar 可以拖动的进度条
OnSeekBarChangeListener() //进度条变化的监听器接口
接口中的三个方法:
onProgressChanged() //进度条改变的方法
onStartTrackingTouch() //当用户开始拖拽调用
onStopTrackingTouch() //当用户停止拖拽调用

RatingBar 评级,评星的进度条
numStarts:星星的总数
progress:当前的星星数
stepSize:每次前进的距离