无法在Android中的表格单元格中对齐ImageView

时间:2012-09-14 20:37:12

标签: android android-tablelayout

好的,这是关于在Android中的表中定位对象的另一个问题,但我在Stack上找到的任何内容都没有帮助。

我希望下面的XML中的ImageView在其单元格中保持对齐。不管我试过什么,它都不会这样做(它始终居中)。设置layout_widthlayout_weight是为了控制单元格本身的位置和大小。但是,这些设置可能会使ImageView无法在其单元格中保持对齐。

android:layout_gravity="left"android:gravity="left"在ImageView标记或TableRow标记中都不起作用。一种似乎有效的kludgy解决方案是在第三列中添加一个空白TextView,以强制第二列保持ImageView正好是ImageView位图的宽度。但是,我不希望这样做,特别是因为不同的行可能包含不同宽度的位图。

<TableLayout
     android:id="@+id/scoreTable"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:layout_alignParentBottom="true"
     android:layout_alignParentLeft="true" >

     <TableRow
         android:id="@+id/thisWeek"
         android:layout_width="wrap_content"
         android:layout_height="fill_parent" >

         <TextView
             android:id="@+id/thisWeekText"
             android:layout_width="0px"
             android:layout_height="30dp"
             android:layout_weight="35"
             android:gravity="right"
             android:paddingRight="30px"
             android:text="@string/thisWeek"
             android:textStyle="bold" />


         <ImageView
             android:id="@+id/chevron1"
             android:layout_width="0px"
             android:layout_height="20dp"
             android:layout_weight="65"
             android:layout_marginLeft="0px"
             android:src="@drawable/doser_scale4a"
             android:visibility="visible" />


     </TableRow>

2 个答案:

答案 0 :(得分:0)

我使用ImageViews替换了TextViews,使用了TextViews中文本的位图。这对我来说没关系,因为该文本不会改变,但我想如果它确实如此,我可以为所有可能的文本创建图像并在这些图像之间切换。

这不是一个理想的解决方案,因为我假设使用位图而不是文本使用更多内存,并且为我的文本制作位图需要一点时间和精力,并且如果需要,可以牺牲更改文本的简易性和灵活性在某些时候,但我无法弄清楚如何使用TextViews。 Android肯定会以这种方式受到限制,因为在表格单元格中以任何方式对齐文本应该不是那么困难,不是吗?

答案 1 :(得分:0)

TableRow的每个“单元格”都是一个视图,因此您可以放置​​一个LinearLayout(使用您的首选重力)并将此LinearLayour放入您的图像中。