我在一个水平方向的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" />
答案 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>
您可能需要对radius
和size
进行一些试验和错误,直到找到适合您的布局的解决方案。