Используйте ImageButton
вместо Button
и используйте вложенные LinearLayout
в каждой ячейке таблицы для правильного центрирования текста под каждой кнопкой:
<TableRow>
<LinearLayout
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<ImageButton
android:layout_gravity="center_horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#00000000"
android:src="@drawable/icon" />
<TextView
android:layout_gravity="center_horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="2dip"
android:text="News Feed"/>
</LinearLayout>
<LinearLayout>
...
</LinearLayout>
</TableRow>
Обратите внимание android:layout_gravity="center_horizontal"
, который центрирует ваше представление горизонтально в родительском представлении. Этот код может потребовать некоторых улучшений, но это общая идея, которой вы должны следовать (используйте layout_gravity, вложенные макеты и ImageButtons).
Вы также можете улучшить макет таблицы, чтобы она использовала все доступное пространство:
<TableLayout
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:stretchColumns="*" >