如何缩放Android TableLayout

我正在用Java制作Android的gomoku游戏。

我在活动的顶部创建了一个记分板,在底部创建了一个新游戏Button

在中心,我在TableLayout创建了100个ImageView (10行和10列)。 它在平板电脑上运行良好,但在手机中 – 特别是在较小的手机中 – ImageView 太小了 ,你无法完美地触摸你想要的东西。

我想实现缩放function 。 它可以是多点触控变焦,或ZoomControl Button ,我唯一需要的是工作。 所以我想放大并缩小TableLayout ,但记分牌和新游戏Button不做任何事情。

                                                                                                                               

我想你可能想要通过使用GridView而不是TableLayout来改变你完全创建图像网格的方式。 使用GridView,您可以控制列的大小(通过调用gridView.setColumnWidth(int) ),并且它将真正清理您的布局/使您的代码从长远来看更容易管理。 因此,当您的用户按下“缩放”按钮时,只需增加列宽,在每个网格项match_parent放置ImageView,Android就会自动为您缩放图像。 我认为它还可以使点击事件/未来的样式更改更容易处理,并使您的布局xml更易于管理(更少的代码行,更多的可移植性,更少的故障点)。 有关GridViews的教程,请查看Google的指南:

http://developer.android.com/guide/topics/ui/layout/gridview.html

对于具有多个列/行或两个相同types视图的内容,您实际上不应该使用TableLayout。

但是,如果,尽管如此,你真的超级附加到你的TableLayout,你有几个选择。 最简单的可能是将它放在ScrollView中,并使用各种方法来扩展TableLayout。 例如,您可以手动调整TableLayout的宽度和高度,或在其上设置ScaleGestureDetector。 这样,您可以扩展内容,并且一旦更大就滚动。 但是,我认为GridView绝对是更好的选择,原因有很多。