包含边界TextView的边界表的Android布局

时间:2010-09-25 17:40:59

标签: android tablelayout border

我想在屏幕顶部并排创建5个大小相同的外部正方形。每个外部正方形应包含3个大小相等的迷你正方形,并排放置在每个外部正方形的顶部。 3个迷你方块中的每一个都是TextViews。

外部正方形和内部正方形都需要一个边框,我想用它来区分每个正方形,这样对于用户来说很明显,每个正方形内有5个不同的外部正方形和3个不同的内部正方形

通过声明5个单独的TableLayout,指定layout_width =“0dp”和layout_weight =“2”,我能够获得5个大小相等的外部正方形。在每个TableLayouts中,我定义了一个带有3个TextView的单个元素。

如何使包含TextViews的3个内部正方形中的每一个都具有相同的大小,与屏幕大小无关?我尝试将每个TextViews的layout_weight设置为“.3”,但这并不能解决问题。

我唯一可以使用TextViews获得3个相同大小的正方形的方法是为3个迷你方块中的每一个设置android:minWidth =“12dp”(或12dp以外的其他数字),但显然这不是适用于不同尺寸的屏幕。

我的表格设置如下面的TableLayout。我包含的这个布局是允许我正确创建迷你方块的布局,但不适用于不同大小的屏幕。我使用边距实际创建了TextViews周围的边框(带有白色轮廓的黑色背景)。

除了这个布局,我尝试创建一个Shape资源并将3个迷你方块的背景设置为该Shape,但这也不起作用,但我也包含了该资源。

<TableLayout
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:background="#FFFFFF">

<TableRow android:background="#FFFFFF">
    <TextView 
        android:background="#000000"
        android:layout_marginLeft="1dip" 
        android:layout_marginRight="1dip" 
        android:layout_marginBottom="1dip"
        android:minWidth="12dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

    <TextView 
        android:background="#000000"
        android:layout_marginLeft="1dip" 
        android:layout_marginRight="1dip" 
        android:layout_marginBottom="1dip"
        android:minWidth="12dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

    <TextView 
        android:background="#000000"
        android:layout_marginLeft="1dip" 
        android:layout_marginBottom="1dip"
        android:layout_marginRight="1dip"
        android:minWidth="12dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

</TableRow>

</TableLayout>

我尝试的Shape资源是:

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
    <solid android:color="#000000"/>
    <stroke android:width="1dp" color="#000000"/>
    <corners android:radius="1dp"/>
    <padding android:left="2dp" android:top="1dp"
        android:right="2dp" android:bottom="1dp" />
</shape>

0 个答案:

没有答案