如何在android表格布局中动态居中图像

时间:2012-11-06 15:57:28

标签: android dynamic imageview center android-tablelayout

我正在创建一个应用程序,我正在动态添加TableRows,其中包含3个imageView和一个textview,它看起来像这样(single tableRow):

IV1 --- TEXTVIEW ----- IV2 ----- IV3

(希望它有助于理解我想要实现的目标) 我对TextView的居中没有任何问题,但是我无法将ImageViews放在中心我试图这样做:

TableLayout.LayoutParams tparams = newTableLayout.LayoutParams(
    TableLayout.LayoutParams.WRAP_CONTENT,
    TableLayout.LayoutParams.WRAP_CONTENT, 
    Gravity.CENTER_VERTICAL);
iv1.setLayoutParams(tparam);
iv2.setLayoutParams(fparams);
iv3.setLayoutParams(fparams);

但是我得到了错误的错误:

11-06 16:37:06.809: E/AndroidRuntime(6578): java.lang.ClassCastException: android.widget.TableLayout$LayoutParams
11-06 16:37:06.809: E/AndroidRuntime(6578): at android.widget.TableRow.getColumnsWidths(TableRow.java:295) 
11-06 16:37:06.809: E/AndroidRuntime(6578): at android.widget.TableLayout.findLargestCells(TableLayout.java:500)
11-06 16:37:06.809: E/AndroidRuntime(6578): at android.widget.TableLayout.measureVertical(TableLayout.java:465)

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

尝试使用TableRow.LayoutParams代替TableLayout.LayoutParams。您正在获取类强制转换异常,这意味着它正在尝试将LayoutParams强制转换为错误类型的LayoutParams。由于视图实际上是TableRow的子项,而不是TableLayout,因此您应该使用TableRow.LayoutParams