环绕TextView Android

时间:2015-04-24 12:31:58

标签: android xml android-layout

我在一个水平方向的linearlayout中有3个textViews。我希望当其中一个textview处于GONE状态时,我希望其他文本视图水平均匀分布,当只有一个textview可见而其他2个textview为GONE时,我希望一个textView水平居中。我使用每个textviews的weight属性实现了这一点。

现在我希望在每个textView周围都有一个cicular背景。由于TextViews中每个文本的TextLength不同,如何为每个TextView设置相同大小的圆圈?

此外,当只有一个TextView可用时,由于权重属性,TextView占据了布局的整个宽度。在这种情况下制作一个圆圈是我现在面临的一个大问题。

我的xml布局:

<TextView 
    android:id="@+id/timercount_view"
    android:layout_width="200dp"
    android:layout_height="200dp"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:textSize="60sp"
    android:background="@drawable/circle_dark"
    android:gravity="center"
    android:textStyle="bold"
    android:layout_marginTop="30dp"
    android:textColor="#ffffffff"
    android:text="60" />

<LinearLayout 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/timercount_view"
    android:gravity="center_horizontal"
    android:layout_alignParentBottom="true"
    android:layout_marginTop="50dp"
    android:orientation="horizontal"
    android:layout_centerHorizontal="true" >
    <TextView 
        android:id="@+id/reset_timer"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="30sp"
        android:gravity="center"
        android:layout_weight="1"
        android:layout_gravity="center_horizontal"
        android:text="Reset"
        android:padding="15dp"
        android:textColor="#ffffff"
        android:layout_margin="5dp"
        android:background="@drawable/circle_dark" 
        />

    <TextView 
        android:id="@+id/restart_timer"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="30sp"
        android:layout_weight="1"
        android:gravity="center"
        android:layout_gravity="center_horizontal"
        android:text="Restart"
        android:padding="15dp"
        android:textColor="#ffffff"
        android:layout_margin="5dp"
        android:background="@drawable/circle_dark"
        />
    <TextView 
        android:id="@+id/start_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="30sp"
        android:layout_weight="1"
        android:layout_gravity="center_horizontal"
        android:gravity="center"
        android:textColor="#ffffff"
        android:layout_margin="5dp"
        android:padding="15dp"
        android:background="@drawable/circle_dark"
        android:text="Start" 
        android:visibility="gone" />
</LinearLayout>

cicle的drawable是:

<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval" >
<corners android:radius="150dp" />
<solid android:color="#ff999999" />

1 个答案:

答案 0 :(得分:3)

你问了

  

如何为每个TextView设置相同大小的圆圈?

将形状的宽度设置为等于其高度:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval" >
    <corners android:radius="150dp" />
    <size android:width="100dp"
        android:height="100dp" />
    <solid android:color="#ff999999" />
</shape>

您可能需要对radiussize进行一些试验和错误,直到找到适合您的布局的解决方案。