(1) 图片效果
(2) 颜色资源
创建颜色资源, 在跟节点
创建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. 表格布局实例

