表格布局包含一系列的 TableRow对象,用于定义行(实际上你也可以使用其它子对象,将在后面进行解释)。表格布局不为它的行、列和单元格显示表格线。每个行可以包含0个以上(包括0)的单元格; 每个单元格可以设置一个View对象.与行包含很多单元格一样, 表格包含很多列。表格的单元格可以为空.单元格可以象 HTML 那样跨列。
列的宽度由该列所有行中最宽的一个单元格决定.不过表格布局可以通过 setColumnShrinkable() 方法或者 setColumnStretchable() 方法来标记某些列可以收缩或可以拉伸. 如果标记为可以收缩,列宽可以收缩以使表格适合容器的大小。如果标记为可以拉伸, 列宽可以拉伸以占用多余的空间。表格的总宽度由其父容器决定. 记住列可以同时具有可拉伸和可收缩标记是很重要的。在列可以调整其宽度以占用可用空间, 但不能超过限度时是很有用的.最后,你可以通过调用setColumnCollapsed() 方法来隐藏列。
表格布局的子对象不能指定 layout_width 属性.宽度永远是 MATCH_PARENT。不过子对象可以定义 layout_height 属性;其默认值是 WRAP_CONTENT. 如果子对象是 TableRow,其高度永远是 WRAP_CONTENT。
下面以一个实际例子展示如何设计界面...
.xml文件
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
tools:context=".TwoHouseTansActivity" >
<TableLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:gravity="left"
>
<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/tvprice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="价格"
/>
<EditText
android:id="@+id/etprice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#606060"
android:textSize="16px"
android:width="90dp" >
</EditText>
<TextView
android:id="@+id/tvbuildarea"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="建筑面积" />
<EditText
android:id="@+id/etbuildarea"
android:layout_width="70dp"
android:layout_height="wrap_content"
android:width="85dp"
/>
</TableRow>
<TableRow
android:id="@+id/tableRow2"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/tvmf"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="买方 "
/>
<TextView
android:id="@+id/tvmfd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="90dp"
android:text=""
/>
<TextView
android:id="@+id/tvmf"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="卖方" />
</TableRow>
<TableRow>
<TextView
android:id="@+id/tvqs"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="契税 "
/>
<EditText
android:id="@+id/etqs"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:width="80dp"
/>
<TextView
android:id="@+id/tvyes"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="营业帨" />
<EditText
android:id="@+id/etyes"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="60dp" />
</TableRow>
<TableRow>
<TextView
android:id="@+id/tvmjyyhs"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="印花税"
/>
<EditText
android:id="@+id/etmjyyhs"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="90dp"
/>
<TextView
android:id="@+id/tvmijyyhs"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="印花税" />
<EditText
android:id="@+id/etmijyyhs"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="60dp" />
</TableRow>
<TableRow>
<TextView
android:id="@+id/tvmjyfws"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="交易服务税"
/>
<EditText
android:id="@+id/etmjyfws"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="80dp" />
<TextView
android:id="@+id/tvmijyfws"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="交易服务税" />
<EditText
android:id="@+id/etmijyfws"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="60dp" />
</TableRow>
<TableRow>
<TextView
android:id="@+id/tvmcqdjf"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="产权登记费"
/>
<EditText
android:id="@+id/etmcqdjf"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="80dp" />
<TextView
android:id="@+id/tvmicqdjf"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="个人所得税" />
<EditText
android:id="@+id/etmicqdjf"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="60dp" />
</TableRow>
<TableRow>
<TextView
android:id="@+id/tvtotal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="合计"
/>
<EditText
android:id="@+id/ettotalprice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="95dp" />
<TextView
android:id="@+id/tvmtotal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="合计" />
<EditText
android:id="@+id/etmtotalprice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="70dp" />
</TableRow>
<TableRow ><Button
android:id="@+id/btncal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="计算" /></TableRow>
</TableLayout>
</LinearLayout>
本文链接
***************************************************************************************************************************
作者:EasyWave 时间:2013.01.03
类别:Android系统源码分析 声明:转载,请保留链接
注意:如有错误,欢迎指正。这些是我学习的日志文章......
***************************************************************************************************************************
由于前一段时间,左脚足背做手术,因此,关于Android2.3.5学习系列的文章,很久没有博客中更新,今天将基于Eclipse for Android的基于Windows下的SDK开发环境的安装,主要有以下几个部分需要安装和设置:
1):Java JDK的安装
在http://developer.android.com/sdk/index.html中,我们可以看到Android开发,需要安装Java JDK,对于Android2.3.5,推荐使用Java6以上,不建议用Java5,如下:
- Windows XP (32-bit), Vista (32- or 64-bit), or Windows 7 (32- or 64-bit)
- Mac OS X 10.5.8 or later (x86 only)
- Linux (tested on Ubuntu Linux, Lucid Lynx)
- GNU C Library (glibc) 2.7 or later is required.
- On Ubuntu Linux, version 8.04 or later is required.
- 64-bit distributions must be capable of running 32-bit applications.
- Eclipse 3.6.2 (Helios) or greater
Note: Eclipse 3.5 (Galileo) is no longer supported with the latest version of ADT.
- Eclipse JDT plugin (included in most Eclipse IDE packages)
- JDK 6 (JRE alone is not sufficient)
- Android Development Tools plugin (recommended)
- Not compatible with GNU Compiler for Java (gcj)
- JDK 6 (JRE alone is not sufficient)
- Apache Ant 1.8 or later
- Not compatible with Gnu Compiler for Java (gcj)
Note: Some Linux distributions may include JDK 1.4 or Gnu Compiler for Java, both of which are notsupported for Android development.
只需要安装Java6即可。请先到http://www.oracle.com/technetwork/java/javase/downloads/index.html 下载java6 JDK,如下图所示:
二):Eclipse的下载
由于用于Mobile环境,因此只需要在http://eclipse.org/mobile/ 下载mobile版本的Eclipse版本即可。如下图所示:
由于是用于windows下来开发Andriod的应用程序,所以只需要下载Windows 32 bit版本即可。
三):Android SDK & AVD 下载
在http://developer.android.com/sdk/index.html 中,我们只需要下载Android SDK即可。如下图所示:
只需要下载上面的 Download the SDK Tools for Windows。
四):ADT的下载
进入http://developer.android.com/tools/sdk/eclipse-adt.html网址上去下载ADT,最新本的是ADT21.0.1,如下图所示:
点击:Installing the Eclipse Plugin进入下面的图片去下载ADT,如下图所示:
这样,我们所需下载的只有这四个基本程序,如下所示,在我的电脑上的图片如下:
五):安装
1):先安装jdk-6u38-windows-i586.exe,之后,设置环境变量,至于如何设置环境变量,请参考:网络上的文章,这里就不详细介绍了。
2):之后安装eclipse-mobile-juno-SR1-win32,只需要将其解压到你想要的路径文件夹下面即可。我的Eclipse的安装路径如下图所示:
3):Android SDK的安装
点击installer_r21.0.1-windows.exe安装,我将其安装在Eclipse下的Android的路径下面,如下图所示:
点击SDK Manager安装Android SDK,如下图所示:
我下载了Anroid4.2和Anriod2.3.3两个版本,其它的版本我们没有下载。下载之后,会自动安装的,这点不用关心了。
4):ADT的安装
ADT的安装,可以到网络上去搜索一下,安装之后,就会在Eclipse中,出现Anriod的选项,然后会自动将Android SDK全部加载到Eclipse中,AVD的设置,也可以到网络上去搜索,很简单的。做完之后,如下图所示:
如果没有看到虚拟键盘,可以参考如下的内容:(因为我定义的是480X800的分辨率)
在Android自定义像素(如:800X480)时,AVD模拟器会没有键盘,但是并不影响测试。
PC键盘与Android键盘对应关系如下:
Emulated Device Key
Keyboard Key
Home
在iOS6以后Orientation可以在plist文件里面进行设置。设置项是“Supported interface orientations”。
如果在iOS5或者一下版本UIViewController类默认支持Portrait only,要支持其他Orientation,需要重写 shouldAutorotateToInterfaceOrientation:方法。
- (BOOL) shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation) orientation
{
return UIInterfaceOrientationIsPortrait(orientation); // only support portrait
return YES; // support all orientations
return (orientation != UIInterfaceOrientationPortraitUpsideDown); // anyting but
}
本文链接