textview以矩形为中心

时间:2013-10-15 13:32:00

标签: android grid-layout

我想使用xml在矩形上绘制文本。我希望文本以矩形为中心。由于某种原因,矩形和文本都在gridlayout中。

<GridLayout
        android:id="@+id/daily"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:columnCount="3"
        android:orientation="horizontal"
        android:rowCount="1" >

        <TextView android:background="@drawable/green_rect_small" />

        <Space android:layout_width="3dp" />

        <RelativeLayout>

            <View
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@drawable/green_rect_large" />

            <TextView
                android:id="@+id/daily_readings"
                android:background="@drawable/green_rect_large"
                android:text="@string/daily_readings"
                android:textColor="@color/white"
                android:textSize="40sp" />
        </RelativeLayout>
</GridLayout>

无论是将矩形设置为文本视图的bg还是单独的视图,我都无法完成。我哪里错了?

2 个答案:

答案 0 :(得分:3)

您无需使用RelativeLayout或单独的视图来绘制绿色矩形。如果我正确理解你,只需一个TextView即可实现你想要的一切:

<TextView
    android:textColor="#FFFFFF"
    android:background="#339933"
    android:layout_width="200dp"
    android:layout_height="50dp"
    android:gravity="center"
    android:text="@string/hello_world" />

结果是:

enter image description here

答案 1 :(得分:1)

将矩形设置为RelativeLayout背景,然后在其上设置文本中心

<?xml version="1.0" encoding="utf-8"?>
<GridLayout
        android:id="@+id/daily"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:columnCount="3"
        android:orientation="horizontal"
        android:rowCount="1" xmlns:android="http://schemas.android.com/apk/res/android">

        <RelativeLayout 
            android:layout_width="300dp"
            android:layout_height="200dp" 
            android:background="@drawable/green_rect_large">


            <TextView
                android:id="@+id/daily_readings"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"

                android:text="daily_readings"
                android:textColor="#FFFFFF"
                android:textSize="40sp"
                android:layout_centerInParent="true" />

        </RelativeLayout>
</GridLayout>