Android布局管理器 – 详细解析布局实现

2026/1/14 14:30:35

(1) 图片效果

(2) 颜色资源

创建颜色资源, 在跟节点下面创建子节点, color属性标签 name 自定义, 子文本为颜色代码; (3) 定时器控制handler

创建Handler对象, 实现handleMessage()方法, 在这个方法中循环设置 TextView对象的颜色变量, 使用color[(i + currentColor)%colors.length]每调用一次, 就将所有的TextView颜色依次调换一次;

在onCreate()方法中, 开启一个定时器Timer, 每隔0.2s就调用一个handler中的方法, 这样动态的霓虹灯代码就显示出来了. (4) 代码

颜色资源代码 :

代码 :

package com.example.framelayout;

import java.util.Timer; import java.util.TimerTask; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message;

import android.widget.TextView;

public class MainActivity extends Activity { //这个变量用来控制霓虹灯颜色变化 private int currentColor = 0; //颜色对应的资源id final int[] colors = new int[] { R.color.color1, R.color.color2, R.color.color3, R.color.color4, R.color.color5, R.color.color6 }; //View组件对应的资源id final int[] names = new int[] { R.id.tv_1, R.id.tv_2, R.id.tv_3, R.id.tv_4, R.id.tv_5, R.id.tv_6 }; //组件数组 TextView[] views = new TextView[names.length]; //定义这个Handler, 为了在定时器中固定调用handleMessage方法 Handler handler = new Handler() { public void handleMessage(Message msg) { if(msg.what == 0x123) { for(int i = 0; i < names.length; i ++){ views[i].setBackgroundResource(colors[(i + currentColor) % names.length]); } currentColor ++; } }; }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.frame); //初始化组件数组 for(int i = 0; i < names.length; i ++) { views[i] = (TextView) findViewById(names[i]); } //每隔0.2秒更换一次颜色 new Timer().schedule(new TimerTask() { @Override public void run() { handler.sendEmptyMessage(0x123); } }, 0, 200); } }

3. 三个水平方向的按钮分别左对齐,居中对齐,右对齐

要点 : 给FrameLayout中的三个按钮分别设置 不同的layout_gravity, left , center_horizontal, right, 就能设置成上图的样式;

代码 :

四. 表格布局TableLayout

1. 表格布局的一些概念

继承关系 : 表格布局继承了LinearLayout, 其本质是线性布局管理器;

控制组件 : 表格布局采用 行, 列 形式管理子组件, 但是并不需要声明有多少 行列, 只需要添加TableRow 和 组件 就可以控制表格的行数和列数;

增加行的方法 :

a. TableRow增加行列 : 向TableLayout中添加一个TableRow, 一个TableRow就是一个表格行, 同时TableRow也是容器, 可以向其中添加子元素, 每添加一个组件, 就增加了一列;

b. 组件增加行 : 如果直接向TableLayout中添加组件, 就相当于直接添加了一行; 列宽 : TableLayout中, 列的宽度由该列最宽的单元格决定, 整个表格的宽度默认充满父容器本身;

2. 单元格行为方式

(1) 行为方式概念

a. 收缩 : Shrinkable, 如果某列被设为Shrinkable, 那么该列所有单元格宽度可以被收缩, 保证表格能适应父容器的宽度;

b. 拉伸 : Stretchable, 如果某列被设为Stretchable, 那么该列所有单元格的宽度可以被拉伸, 保证表格能完全填满表格剩余空间;

c. 隐藏 : Collapsed, 如果某列被设置成Collapsed, 那么该列所有单元格会被隐藏; (2) 行为方式属性

a. 隐藏

xml属性 : android:collapsedColumns;

设置方法 : setColumnCollapsed(int, boolean);

作用 : 设置需要被隐藏的列的序号, 在xml文件中, 如果隐藏多列, 多列序号间用逗号隔开;

b. 拉伸

xml属性 : android:stretchColumns;

设置方法 : setStretchAllColumns(boolean);

作用 : 设置允许被拉伸的列的序列号, xml文件中多个序列号之间用逗号隔开; c. 收缩

xml属性 : android:shrinkableColumns;

设置方法 : setShrinkableAllColumns(boolean);

作用 : 设置允许被收缩的列的序号, xml文件中, 多个序号之间可以用逗号隔开;

3. 表格布局实例


Android布局管理器 – 详细解析布局实现.doc 将本文的Word文档下载到电脑
搜索更多关于: Android布局管理器 – 详细解析布局实现 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219