- 浏览: 675431 次
- 性别:
- 来自: 深圳
最新评论
-
fingerplay:
请问一下,第一份,逻辑树,就是代码里可以操纵的,例如更改lay ...
UIView与CALayer -
ok_lyc:
分享到哪里去了
iPhoneUIFont各种字体 -
lliiqiang:
我的个人理解:wait方法是在java虚拟机层面上在获取对象锁 ...
JAVA多线程同步wait、notify、synchronized -
milixw:
谢谢分享,就在找这个
iphone 推送通知 java 实现 -
wsqwsq000:
你的log4j包不行,上网搜一下:log4j-1.2.16.j ...
iphone 推送通知 java 实现
TableLayout和我们平时在网页上见到的Table有所不同,TableLayout没有边框的,它是由多个TableRow对象组成,每个TableRow可以有0个或多个单元格,每个单元格就是一个View。这些TableRow,单元格不能设置layout_width,宽度默认是fill_parent的,只有高度layout_height可以自定义,默认是wrap_content。
单元格可以为empty,并且通过android:layout_column可以设置index值实现跳开某些单元格。在TableRow之间,添加View,设置layout_height以及背景色,就可以实现一条间隔线。android:layout_span可以设置合并几个单元格:
- <?xml version="1.0" encoding="utf-8"?>
- <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
- <TableRow>
- <TextView
- android:text="column1"
- android:padding="3dip" />
- <TextView
- android:text="column2"
- android:padding="3dip" />
- <TextView
- android:text="column3"
- android:padding="3dip" />
- </TableRow>
- <TableRow>
- <TextView
- android:text="column11"
- android:visibility="invisible"/> //cell不见了
- <TextView
- android:text="左边的invisible"
- android:gravity="right"
- android:padding="3dip" />
- <Button
- android:id="@+id/go"
- android:text="go"
- android:padding="3dip" />
- <Button
- android:text="cancel"
- android:padding="3dip" />
- </TableRow>
- <View //间隔线
- android:layout_height="2dip"
- android:background="#F00" />
- <TableRow>
- <TextView
- android:text="右边的cell empty" />
- <TextView
- android:layout_column="2"
- android:text="跳开empty cell"
- android:padding="3dip" />
- </TableRow>
- <TableRow>
- <TextView
- android:text="合并3个单元格"
- android:layout_span="3"
- android:gravity="center_horizontal"
- android:background="#FFC0C0C0"
- android:textColor="#f00"
- android:padding="3dip" />
- </TableRow>
- </TableLayout>
没有设置收缩/伸展效果
注意,原来没有添加 android:padding="3dip" 的,发现那些column会凑在一起的,没有空白间隔!明显看到,那个cancel按钮被挤到几乎看不见了!这时候需要使用android:shrinkColumns="可收缩的column",android:stretchColumns="可伸展的column"。
android:shrinkColumns和android:stretchColumns的值都是以0开始的index,但必须是string值,即用"1,2,5"来表示。可以用"*"来表示all columns。而且同一column可以同时设置为shrinkable和stretchable。
如果使用TableLayout类的setColumnShrinkable/setColumnStretchable (int columnIndex, boolean isShrinkable)就麻烦些了,需要一个一个column来设置。也可以使用TableLayout的setShrinkAllColumns/setStretchAllColumns来设置all columns。
判断这些column是否shrinkable或stretchable,可以调用isColumnShrinkable/isColumnStretchable(int columnIndex),isShrinkAllColumns()/isStretchAllColumns()。
- <?xml version="1.0" encoding="utf-8"?>
- <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:shrinkColumns="0" > // 设置第一个column可收缩
- <TableRow>
- <TextView
- android:text="column1"
- android:padding="3dip" />
- <TextView
- android:text="column2"
- android:padding="3dip" />
- <TextView
- android:text="column3"
- android:padding="3dip" />
- </TableRow>
- <TableRow>
- <TextView
- android:text="column11"
- android:visibility="invisible"/>
- <TextView
- android:text="左边的invisible"
- android:gravity="right"
- android:padding="3dip" />
- <Button
- android:id="@+id/go2"
- android:text="go2"
- android:padding="3dip" />
- <Button
- android:text="cancel"
- android:padding="3dip" />
- </TableRow>
- <View
- android:layout_height="2dip"
- android:background="#F00" />
- <TableRow>
- <TextView
- android:text="右边的cell empty" />
- <TextView
- android:layout_column="2"
- android:text="跳开empty cell"
- android:padding="3dip" />
- <TextView
- android:text="123456789"
- android:padding="3dip" />
- </TableRow>
- </TableLayout>
可收缩column效果
现在可以看到第一个column为了让第4个column完整显示,而收缩得内容分为几行显示!
而可伸展column的效果就是在其他column可以完整显示时,该column就会伸展,占最多空间:
- <?xml version="1.0" encoding="utf-8"?>
- <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:stretchColumns="1"> // 设置第二个column可伸展
- <TableRow>
- <TextView
- android:text="column1"
- android:padding="3dip" />
- <TextView
- android:text="column2"
- android:gravity="right"
- android:padding="3dip" />
- <TextView
- android:text="column3"
- android:padding="3dip" />
- </TableRow>
- <TableRow>
- <TextView
- android:text="column1"
- android:padding="3dip" />
- <TextView
- android:text="column2"
- android:gravity="right"
- android:padding="3dip" />
- <TextView
- android:text="column3"
- android:padding="3dip" />
- </TableRow>
- </TableLayout>
可伸展column效果
而动态隐藏column,可以调用TableLayout.setColumnCollapsed (int columnIndex, boolean isCollapsed)来指定相应的column。另外TableLayout类的boolean isColumnCollapsed (int columnIndex)能够判断指定的column是否隐藏。
TableLayout可以用来做网页上的Form显示效果,看看官方的sample:
- <?xml version="1.0" encoding="utf-8"?>
- <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:stretchColumns="1">
- <TableRow>
- <TextView
- android:text="@string/table_layout_10_user"
- android:textStyle="bold"
- android:gravity="right"
- android:padding="3dip" />
- <EditText android:id="@+id/username"
- android:text="@string/table_layout_10_username_text"
- android:padding="3dip"
- android:scrollHorizontally="true" />
- </TableRow>
- <TableRow>
- <TextView
- android:text="@string/table_layout_10_password"
- android:textStyle="bold"
- android:gravity="right"
- android:padding="3dip" />
- <EditText android:id="@+id/password"
- android:text="@string/table_layout_10_password_text"
- android:password="true"
- android:padding="3dip"
- android:scrollHorizontally="true" />
- </TableRow>
- <TableRow
- android:gravity="right">
- <Button android:id="@+id/cancel"
- android:text="@string/table_layout_10_cancel" />
- <Button android:id="@+id/login"
- android:text="@string/table_layout_10_login" />
- </TableRow>
- </TableLayout>
Form效果
发表评论
-
google开放的maps api接口
2012-01-12 22:51 1171google开放的Maps api接口,包括很多版 ... -
iphone中请求对应的Mime type
2011-09-21 10:03 2246Extension MIME type Desc ... -
android前端与java web后台的ssl交互
2011-08-18 17:39 2712android前端与java web后台如何进行ssl交 ... -
android style
2011-07-09 21:47 1409对于能够显示文字的控件(如TextView EditTex ... -
android 定时器
2011-07-09 21:47 2112在Android上常用的定时器有两种,一种是Java.util ... -
android 4大组件介绍
2011-07-09 21:47 1884Android组件 横看成岭侧成峰,远近高低各不同。 -- ... -
view中的getTag何setTag
2011-07-09 21:46 1368View中的setTag(Onbect)表示给View添加一个 ... -
android handler介绍
2011-07-09 21:46 1331/*** * Handler的定义: * 主要接受 ... -
AsyncTask的使用
2011-07-09 21:46 1051本片不多说 直接引用: ... -
Android 调试桥abd
2011-07-09 21:44 1039Android 调试桥(adb)是多种用途的工具,该工具可 ... -
Android 应用程序之间数据共享—ContentProvider
2011-07-09 21:44 1909在Android 应用程序之间数据共享—-ContentRes ... -
Content Provider
2011-07-09 21:44 1120Android程序的主要4部分 ... -
android之ContentResolver与ContentProvider
2011-07-09 21:43 1523android中对数据操作包含有: file, sqlite3 ... -
android contentResolver与contentProvider如何关联在一起的
2011-07-09 21:43 2047看到一篇文章觉得不错,推荐给大家,希望大家喜欢Applicat ... -
android service入门
2011-07-09 21:42 854android SDK提供了Service,用于类似*nix守 ... -
AsyncQueryHandler
2011-07-09 21:42 1344AsyncQueryHandler研究 andr ... -
android下载进度条
2011-07-09 21:41 4111我们今天开始学习的是下载进度的实现。今天的这段代码是网上找的, ... -
android如何获取后台正在运行的service
2011-07-09 21:40 3991给一段获取正在运行的后台service的代码,如下: ... -
Android之getSystemService
2011-07-09 21:40 1495getSystemService是Android很重要的一个 ... -
android体系架构
2011-07-09 21:39 2462作者:张华 发表于:200 ...
相关推荐
Android UI设计心得。包括线性布局(LinearLayout)、相对布局(RelativeLayout)、表格布局(TableLayout)、框架布局(FrameLayout)、绝对布局(AbsoluteLayout)。其中AbsoluteLayout在Android SDK2.3.3之后已经...
具体可以在专栏 【Android开发基础】三种常见的适配器(Adapter)、 【AndroidUI设计】icon矢量图标应用(低内存复应用) 中学习到。 按照折扣,只有第一份享受折扣。(当然还有第n份多少折,其实都很简单,就是for...
具体可以在专栏 【Android开发基础】三种常见的适配器(Adapter)、 【AndroidUI设计】icon矢量图标应用(低内存复应用) 中学习到。 按照折扣,只有第一份享受折扣。(当然还有第n份多少折,其实都很简单,就是for...
运行: 选运行的设备,可以是模拟器,也可以是真机(如果已经连接好真实手机的话): 模拟器运行: 真实手机调试: 实验二:界面设计:控件与布局 【目的】 Android编程基础,UI设计。 【要求】 1. 了解Android编程...
LinearLayout是线性布局控件,它包含的子控件将以横向或竖向的方式排列(通过android:orientation属性来控制),按照相对位置来排列所有的widgets或者其他的containers,超过边界时,某些控件将缺失或消失 ...
4.2.2 ADT插件UI设计工具 46 4.3 事件处理模型 47 4.3.1 接口实现事件处理模型 47 4.3.2 内部类事件处理模型 49 4.3.3 匿名内部类事件处理模型 51 4.4 Activity中的常用事件 53 4.4.1 触摸事件 53 4.4.2 键盘...
15.6 AndroidUI优化 15.7 其他优化 15.7.1 zipalign 15.7.2 图片优化 15.8 小结 第五部分 扩展篇 第16章 Android NDK开发 16.1 AndroidNDK简介 16.2 安装和配置NDK开发环境 16.2.1 系统和软件...
15.6 AndroidUI优化 15.7 其他优化 15.7.1 zipalign 15.7.2 图片优化 15.8 小结 第五部分 扩展篇 第16章 Android NDK开发 16.1 AndroidNDK简介 16.2 安装和配置NDK开发环境 16.2.1 系统和软件需求 16.2.2 NDK开发...
15.6 AndroidUI优化 15.7 其他优化 15.7.1 zipalign 15.7.2 图片优化 15.8 小结 第五部分 扩展篇 第16章 Android NDK开发 16.1 AndroidNDK简介 16.2 安装和配置NDK开发环境 16.2.1 系统和软件...
《Android从入门到精通》 第1章 初识Android 1.1 什么是Android 1.1.1 移动信息设备分类 1.1.2 Open Handset Alliance和 ...13.2 俄罗斯方块游戏UI设计 13.3 俄罗斯方块游戏功能实现 13.4 俄罗斯方块游戏演示
运行: 选运行的设备,可以是模拟器,也可以是真机(如果已经连接好真实手机的话): 模拟器运行: 真实手机调试: 实验二:界面设计:控件与布局 【目的】 Android编程基础,UI设计。 【要求】 1. 了解Android编程...
1.5.2 Android UI 1.5.3 Android基础组件 1.5.4 高级UI概念 1.5.5 Android Service组件 1.5.6 Android媒体和电话组件 1.5.7 Android Java包 1.6 利用Android源代码 1.7 本书的示例项目 1.8...
Android布局详解实例,包含:线性布局(LinearLayout)、相对布局(RelativeLayout)、帧布局(FrameLayout)、表格布局(TableLayout)四大布局方式的demo
第4-11罐从“Android视图与容器组件”、“如何控制UI界面”、“Android布局管理器介绍”、“第六大布局特性和演练”四个方面,讲解了Android提供的丰富用户界面组件基础,以及如何使用代码和XML分别控制用户界面。...
1. Android有五大布局对象,它们分别是FrameLayout(框架布局:不知道是不是这么翻译的),LinearLayout (线性布局),AbsoluteLayout(绝对布局),RelativeLayout(相对布局),TableLayout(表格布局)。 2. Android常用控件: 1...