Android 真正的九宫格布局 横屏竖屏上下均自动居中


今天想写个Android 九宫格的布局,baidu了一下,网上的代码大同小异,但是都不能实现竖直方向上的居中,于是就自己研究了一下,分享于此.先看看效果图:

分别是横屏和竖屏的,其他扩张大家可以自行添加了.

布局代码如下:

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:layout_width="match_parent"  
  4.     android:layout_height="match_parent"  
  5.     android:stretchColumns="*" >  
  6.   
  7.     <View  
  8.         android:layout_width="match_parent"  
  9.         android:layout_height="1dip"  
  10.         android:background="#B7B7B7" />  
  11.   
  12.     <TableRow  
  13.         android:id="@+id/tableRow1"  
  14.         android:layout_width="match_parent"  
  15.         android:layout_height="match_parent"  
  16.         android:layout_weight="1" >  
  17.   
  18.         <ImageView  
  19.             android:id="@+id/imageView1"  
  20.             android:layout_width="wrap_content"  
  21.             android:layout_height="wrap_content"  
  22.             android:layout_gravity="center"  
  23.             android:padding="15dip"  
  24.             android:src="@drawable/ic_launcher" />  
  25.   
  26.         <ImageView  
  27.             android:id="@+id/imageView1"  
  28.             android:layout_width="wrap_content"  
  29.             android:layout_height="wrap_content"  
  30.             android:layout_gravity="center"  
  31.             android:padding="15dip"  
  32.             android:src="@drawable/ic_launcher" />  
  33.   
  34.         <ImageView  
  35.             android:id="@+id/imageView1"  
  36.             android:layout_width="wrap_content"  
  37.             android:layout_height="wrap_content"  
  38.             android:layout_gravity="center"  
  39.             android:padding="15dip"  
  40.             android:src="@drawable/ic_launcher" />  
  41.     </TableRow>  
  42.   
  43.     <View  
  44.         android:layout_height="1dip"  
  45.         android:background="#B7B7B7" />  
  46.   
  47.     <TableRow  
  48.         android:id="@+id/tableRow2"  
  49.         android:layout_width="wrap_content"  
  50.         android:layout_height="wrap_content"  
  51.         android:layout_weight="1" >  
  52.   
  53.         <ImageView  
  54.             android:id="@+id/imageView1"  
  55.             android:layout_width="wrap_content"  
  56.             android:layout_height="wrap_content"  
  57.             android:layout_gravity="center"  
  58.             android:padding="15dip"  
  59.             android:src="@drawable/ic_launcher" />  
  60.   
  61.         <ImageView  
  62.             android:id="@+id/imageView1"  
  63.             android:layout_width="wrap_content"  
  64.             android:layout_height="wrap_content"  
  65.             android:layout_gravity="center"  
  66.             android:padding="15dip"  
  67.             android:src="@drawable/ic_launcher" />  
  68.   
  69.         <ImageView  
  70.             android:id="@+id/imageView1"  
  71.             android:layout_width="wrap_content"  
  72.             android:layout_height="wrap_content"  
  73.             android:layout_gravity="center"  
  74.             android:padding="15dip"  
  75.             android:src="@drawable/ic_launcher" />  
  76.     </TableRow>  
  77.   
  78.     <View  
  79.         android:layout_width="match_parent"  
  80.         android:layout_height="1dip"  
  81.         android:background="#B7B7B7" />  
  82.   
  83.     <TableRow  
  84.         android:id="@+id/tableRow3"  
  85.         android:layout_width="wrap_content"  
  86.         android:layout_height="wrap_content"  
  87.         android:layout_gravity="center"  
  88.         android:layout_weight="1" >  
  89.   
  90.         <ImageView  
  91.             android:id="@+id/imageView1"  
  92.             android:layout_width="wrap_content"  
  93.             android:layout_height="wrap_content"  
  94.             android:layout_gravity="center"  
  95.             android:padding="15dip"  
  96.             android:src="@drawable/ic_launcher" />  
  97.   
  98.         <ImageView  
  99.             android:id="@+id/imageView1"  
  100.             android:layout_width="wrap_content"  
  101.             android:layout_height="wrap_content"  
  102.             android:layout_gravity="center"  
  103.             android:padding="15dip"  
  104.             android:src="@drawable/ic_launcher" />  
  105.   
  106.         <ImageView  
  107.             android:id="@+id/imageView1"  
  108.             android:layout_width="wrap_content"  
  109.             android:layout_height="wrap_content"  
  110.             android:layout_gravity="center"  
  111.             android:padding="15dip"  
  112.             android:src="@drawable/ic_launcher" />  
  113.     </TableRow>  
  114.   
  115.     <View  
  116.         android:layout_width="match_parent"  
  117.         android:layout_height="1dip"  
  118.         android:background="#B7B7B7" />  
  119.   
  120. </TableLayout>  

xml代码很简单,相信大家都能看懂了,就不多解释了。

相关内容