由于冒号是一个非常简单的形状,您可以从小型元素构建它,如文本视图、图形基元或仅两个视图,以垂直线性布局。
例如,首先创建一个简单的点作为形状可绘制对象(位于drawable文件夹中的dot.xml):
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="#ccc"/>
</shape>
使用这个可绘制对象作为背景创建一个视图(在布局文件夹中的 clock_dot.xml 文件):
<?xml version="1.0" encoding="utf-8"?>
<View xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="3sp"
android:layout_height="3sp"
android:background="@drawable/dot"
android:layout_margin="3sp"
android:layout_weight="0" />
将两个点堆叠在一起以创建冒号字符(在布局文件夹中的clock_colon.xml):
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_gravity="center_vertical"
android:gravity="center_vertical"
android:layout_width="wrap_content"
android:layout_height="match_parent">
<include layout="@layout/clock_dot"/>
<include layout="@layout/clock_dot"/>
</LinearLayout>
创建一个带有两个数字的文本视图(clock_digits.xml):
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0"
android:textColor="#ccc"
android:textSize="24sp"
android:text="12" />
然后从数字布局和冒号布局构建计时器布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:gravity="center_vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<include layout="@layout/clock_digits"/>
<include layout="@layout/clock_colon"/>
<include layout="@layout/clock_digits"/>
<include layout="@layout/clock_colon"/>
<include layout="@layout/clock_digits"/>
</LinearLayout>
你会得到类似这样的东西: