续上,Layout之TableLayout,TableLayout即为表格布局,和之前的文章一样,我们这篇文章也通过两种方式实现我们的表格布局方式的例子。

先看看效果图:

只通过xml文件实现的效果图

android之Layout(三)_第1张图片 

只通过java文件实现的效果图

 

android之Layout(三)_第2张图片

layout中的xml文件

 

   
   
   
   
  1. <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  2.     android:layout_width="fill_parent" 
  3.     android:layout_height="fill_parent" 
  4.     android:shrinkColumns="2,3">  //设置第2,3列可以自动换行
  5.     <TableRow >  //TableRow设置一行,在TableRow中可以添加组件
  6.         <TextView  //添加TextView
  7.             android:layout_column="0"  //设置TextView在TableRow的第0列
  8.             android:text="ID"  //设置TextView的内容
  9.             android:padding="5px"  //设置TextView为5像素
  10.             android:gravity="center_horizontal"  //设置TextView的对其方式为居中
  11.              />   
  12.         <TextView 
  13.             android:layout_column="1" 
  14.             android:text="Name" 
  15.             android:padding="5px" 
  16.             android:gravity="center_horizontal" 
  17.              /> 
  18.         <TextView 
  19.             android:layout_column="2" 
  20.             android:text="Email" 
  21.             android:padding="5px" 
  22.             android:gravity="center_horizontal" 
  23.              />     
  24.         <TextView 
  25.             android:layout_column="3" 
  26.             android:text="地址" 
  27.             android:padding="5px" 
  28.             android:gravity="center_horizontal" 
  29.              /> 
  30.     TableRow> 
  31.     <View    //添加一个组件作为我们的分隔符
  32.         android:background="#ff00ff"  //设置View的背景
  33.         android:layout_height="2dp"/>  //设置View的高度
  34.     <TableRow > 
  35.         <TextView   
  36.             android:layout_column="0" 
  37.             android:text="0" 
  38.             android:padding="5px" 
  39.             android:gravity="center_horizontal" 
  40.             /> 
  41.         <TextView   
  42.             android:layout_column="1" 
  43.             android:text="Jack_Cheng" 
  44.             android:padding="5px" 
  45.             android:gravity="center_horizontal" 
  46.             /> 
  47.         <TextView   
  48.             android:layout_column="2" 
  49.             android:text="[email protected]" 
  50.             android:padding="5px" 
  51.             android:gravity="center_horizontal" 
  52.             /> 
  53.         <TextView   
  54.             android:layout_column="3" 
  55.             android:text="上海市静安区大田路" 
  56.             android:padding="3px" 
  57.             android:gravity="center_horizontal" 
  58.             /> 
  59.     TableRow> 
  60.     <TableRow > 
  61.         <TextView   
  62.             android:layout_column="0" 
  63.             android:text="1" 
  64.             android:padding="5px" 
  65.             android:gravity="center_horizontal" 
  66.             /> 
  67.         <TextView   
  68.             android:layout_column="1" 
  69.             android:text="程海啸" 
  70.             android:padding="5px" 
  71.             android:gravity="center_horizontal" 
  72.             /> 
  73.         <TextView   
  74.             android:layout_column="2" 
  75.             android:text="[email protected]" 
  76.             android:padding="5px" 
  77.             android:gravity="center_horizontal" 
  78.             /> 
  79.         <TextView   
  80.             android:layout_column="3" 
  81.             android:text="上海市黄浦区徐家汇路" 
  82.             android:padding="3px" 
  83.             android:gravity="center_horizontal" 
  84.             /> 
  85.     TableRow> 
  86.       
  87.     <View   
  88.         android:background="#00ff00" 
  89.         android:layout_height="2dp"/> 
  90.       
  91.     <TableRow > 
  92.         <ImageView  //设置一个图片View
  93.             android:id="@+id/p_w_picpathview" 
  94.             android:layout_column="2" 
  95.             android:src="@drawable/cocos2d" //设置图片的资源 
  96.             android:layout_width="90dp" 
  97.             android:layout_height="90dp" 
  98.             android:padding="8px" 
  99.             android:layout_gravity="left" 
  100.              /> 
  101.  
  102.     TableRow> 
  103. TableLayout> 

 

Activaty.java文件

 

   
   
   
   
  1. package com.cheng.tablelayoutproject;  
  2.  
  3.  
  4. import android.os.Bundle;  
  5. import android.app.Activity;  
  6. import android.view.Menu;  
  7. import android.view.ViewGroup;  
  8. import android.view.ViewGroup.LayoutParams;  
  9. import android.widget.ImageView;  
  10. import android.widget.TableLayout;  
  11. import android.widget.TextView;  
  12. import android.widget.TableRow;  
  13.  
  14. public class MainActivity extends Activity {  
  15.     //定义一个信息的数组  
  16.     private String[][] MyData = new String[][]{  
  17.             {"ID","Name","Email","地址"},  
  18.             {"0","Jack_Cheng","[email protected]","上海市静安区大田路"},  
  19.             {"1","程海啸","[email protected]","上海市黄浦区徐家汇路"}  
  20.             };  
  21.     @Override 
  22.     protected void onCreate(Bundle savedInstanceState) {  
  23.         super.onCreate(savedInstanceState);  
  24.         //定义一个TableLayout布局方式  
  25.         TableLayout mLayout = new TableLayout(MainActivity.this);  
  26.         //定义一个TableLayout的布局参数  
  27.         TableLayout.LayoutParams mLayoutParams = new TableLayout.LayoutParams(  
  28.                 ViewGroup.LayoutParams.FILL_PARENT,   
  29.                 ViewGroup.LayoutParams.FILL_PARENT);  
  30.         //定义一个布局参数,待会会用在TableRow组件之上  
  31.         TableLayout.LayoutParams mtrParams = new TableLayout.LayoutParams(  
  32.                 ViewGroup.LayoutParams.WRAP_CONTENT,  
  33.                 ViewGroup.LayoutParams.WRAP_CONTENT);  
  34.         //通过for循环向TableRow中添加信息  
  35.         for (int i = 0; i < MyData.length; i++) {  
  36.             TableRow tRow = new TableRow(MainActivity.this);//定义一个TableRow  
  37.             for (int j = 0; j < MyData[i].length; j++) {  
  38.                 TextView tView = new TextView(MainActivity.this);  //定义一个TextView组件  
  39.                 tView.setText(MyData[i][j]);    //设置TextView的组件的内容  
  40.                 tView.setTextSize(12);          //设置TextView的字体大小  
  41.                 tRow.addView(tView, j);         //将TextView组件添加到TableRow中  
  42.             }  
  43.               
  44.             mLayout.addView(tRow, mtrParams);   //将TableRow添加到TableLayout布局之中  
  45.         }  
  46.           
  47.         ImageView mp_w_picpathView = new ImageView(MainActivity.this);//定义一个ImageView组件  
  48.         mp_w_picpathView.setImageResource(R.drawable.cocos2d);       //设置图片的资源  
  49.         //p_w_picpathTableRow.addView(mp_w_picpathView);                          
  50.         //mLayout.addView(p_w_picpathTableRow,mtrParams);  
  51.         mLayout.addView(mp_w_picpathView, new LayoutParams(9090));//向布局中添加ImageView组件  
  52.         super.setContentView(mLayout,mLayoutParams);           //将布局添加到Activaty中  
  53.     }  
  54.  
  55.     @Override 
  56.     public boolean onCreateOptionsMenu(Menu menu) {  
  57.         // Inflate the menu; this adds items to the action bar if it is present.  
  58.         getMenuInflater().inflate(R.menu.main, menu);  
  59.         return true;  
  60.     }  
  61.  
  62. }  

ok