续上,Layout之TableLayout,TableLayout即为表格布局,和之前的文章一样,我们这篇文章也通过两种方式实现我们的表格布局方式的例子。
先看看效果图:
只通过xml文件实现的效果图
只通过java文件实现的效果图
layout中的xml文件
- <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:shrinkColumns="2,3"> //设置第2,3列可以自动换行
- <TableRow > //TableRow设置一行,在TableRow中可以添加组件
- <TextView //添加TextView
- android:layout_column="0" //设置TextView在TableRow的第0列
- android:text="ID" //设置TextView的内容
- android:padding="5px" //设置TextView为5像素
- android:gravity="center_horizontal" //设置TextView的对其方式为居中
- />
- <TextView
- android:layout_column="1"
- android:text="Name"
- android:padding="5px"
- android:gravity="center_horizontal"
- />
- <TextView
- android:layout_column="2"
- android:text="Email"
- android:padding="5px"
- android:gravity="center_horizontal"
- />
- <TextView
- android:layout_column="3"
- android:text="地址"
- android:padding="5px"
- android:gravity="center_horizontal"
- />
- </TableRow>
- <View //添加一个组件作为我们的分隔符
- android:background="#ff00ff" //设置View的背景
- android:layout_height="2dp"/> //设置View的高度
- <TableRow >
- <TextView
- android:layout_column="0"
- android:text="0"
- android:padding="5px"
- android:gravity="center_horizontal"
- />
- <TextView
- android:layout_column="1"
- android:text="Jack_Cheng"
- android:padding="5px"
- android:gravity="center_horizontal"
- />
- <TextView
- android:layout_column="2"
- android:text="302517623@qq.com"
- android:padding="5px"
- android:gravity="center_horizontal"
- />
- <TextView
- android:layout_column="3"
- android:text="上海市静安区大田路"
- android:padding="3px"
- android:gravity="center_horizontal"
- />
- </TableRow>
- <TableRow >
- <TextView
- android:layout_column="0"
- android:text="1"
- android:padding="5px"
- android:gravity="center_horizontal"
- />
- <TextView
- android:layout_column="1"
- android:text="程海啸"
- android:padding="5px"
- android:gravity="center_horizontal"
- />
- <TextView
- android:layout_column="2"
- android:text="chenghaixiaomail@gmail.com"
- android:padding="5px"
- android:gravity="center_horizontal"
- />
- <TextView
- android:layout_column="3"
- android:text="上海市黄浦区徐家汇路"
- android:padding="3px"
- android:gravity="center_horizontal"
- />
- </TableRow>
- <View
- android:background="#00ff00"
- android:layout_height="2dp"/>
- <TableRow >
- <ImageView //设置一个图片View
- android:id="@+id/p_w_picpathview"
- android:layout_column="2"
- android:src="@drawable/cocos2d" //设置图片的资源
- android:layout_width="90dp"
- android:layout_height="90dp"
- android:padding="8px"
- android:layout_gravity="left"
- />
- </TableRow>
- </TableLayout>
Activaty.java文件
- package com.cheng.tablelayoutproject;
- import android.os.Bundle;
- import android.app.Activity;
- import android.view.Menu;
- import android.view.ViewGroup;
- import android.view.ViewGroup.LayoutParams;
- import android.widget.ImageView;
- import android.widget.TableLayout;
- import android.widget.TextView;
- import android.widget.TableRow;
- public class MainActivity extends Activity {
- //定义一个信息的数组
- private String[][] MyData = new String[][]{
- {"ID","Name","Email","地址"},
- {"0","Jack_Cheng","302517623@qq.com","上海市静安区大田路"},
- {"1","程海啸","chenghaixiaomail@gmail.com","上海市黄浦区徐家汇路"}
- };
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- //定义一个TableLayout布局方式
- TableLayout mLayout = new TableLayout(MainActivity.this);
- //定义一个TableLayout的布局参数
- TableLayout.LayoutParams mLayoutParams = new TableLayout.LayoutParams(
- ViewGroup.LayoutParams.FILL_PARENT,
- ViewGroup.LayoutParams.FILL_PARENT);
- //定义一个布局参数,待会会用在TableRow组件之上
- TableLayout.LayoutParams mtrParams = new TableLayout.LayoutParams(
- ViewGroup.LayoutParams.WRAP_CONTENT,
- ViewGroup.LayoutParams.WRAP_CONTENT);
- //通过for循环向TableRow中添加信息
- for (int i = 0; i < MyData.length; i++) {
- TableRow tRow = new TableRow(MainActivity.this);//定义一个TableRow
- for (int j = 0; j < MyData[i].length; j++) {
- TextView tView = new TextView(MainActivity.this); //定义一个TextView组件
- tView.setText(MyData[i][j]); //设置TextView的组件的内容
- tView.setTextSize(12); //设置TextView的字体大小
- tRow.addView(tView, j); //将TextView组件添加到TableRow中
- }
- mLayout.addView(tRow, mtrParams); //将TableRow添加到TableLayout布局之中
- }
- ImageView mp_w_picpathView = new ImageView(MainActivity.this);//定义一个ImageView组件
- mp_w_picpathView.setImageResource(R.drawable.cocos2d); //设置图片的资源
- //p_w_picpathTableRow.addView(mp_w_picpathView);
- //mLayout.addView(p_w_picpathTableRow,mtrParams);
- mLayout.addView(mp_w_picpathView, new LayoutParams(90, 90));//向布局中添加ImageView组件
- super.setContentView(mLayout,mLayoutParams); //将布局添加到Activaty中
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- // Inflate the menu; this adds items to the action bar if it is present.
- getMenuInflater().inflate(R.menu.main, menu);
- return true;
- }
- }
ok
转载于:https://blog.51cto.com/jackcheng/1131871