Android 如何在TextView中使冒号垂直居中
我有一个Android 如何在TextView中使冒号垂直居中,android,textview,Android,Textview,我有一个文本视图显示时间。时间每秒钟更新一次 我用的是DIN字体。我已将TextView设置为居中对齐(垂直)。为什么冒号与基线对齐?谁知道如何解决此问题 更新 这是字体呈现冒号字符的默认方式。除非为冒号创建单独的文本视图,否则无法更改此方式。或者,您可以使用其他字体,并检查是否有任何其他字体实际将冒号字符居中。使用以下方法执行此操作: android:fontFamily="sans-serif" // roboto regular android:fontFamil
文本视图
显示时间。时间每秒钟更新一次
我用的是DIN字体。我已将TextView
设置为居中对齐(垂直)。为什么冒号与基线对齐?谁知道如何解决此问题
更新
这是字体呈现冒号字符的默认方式。除非为冒号创建单独的文本视图,否则无法更改此方式。或者,您可以使用其他字体,并检查是否有任何其他字体实际将冒号字符居中。使用以下方法执行此操作:
android:fontFamily="sans-serif" // roboto regular
android:fontFamily="sans-serif-light" // roboto light
android:fontFamily="sans-serif-condensed" // roboto condensed
android:fontFamily="sans-serif-thin" // roboto thin (android 4.2)
android:fontFamily="sans-serif-medium" // roboto medium (android 5.0)
要更好地解释可使用的字体,请查看
希望这有帮助:)一个选项是将整个TextView分成5个不同的TextView,并添加
android:layout\u marginTop=“3px”
在带有数字的元素上。因为冒号是一个非常简单的形状,您可以从较小的元素(文本视图、图形原语或两个视图)在垂直线性布局中构建它
例如,首先创建一个简单的点作为可绘制的形状(drawable文件夹中的dot.xml):
创建一个以该绘图为背景的视图(布局文件夹中的clock_dot.xml):
堆叠两个点以创建冒号字符(布局文件夹中的clock_colon.xml):
创建两位数的文本视图(clock_digits.xml):
然后根据数字布局和冒号布局构建计时器布局:
<?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>
你会得到这样的结果:
取决于您的XML。请尝试检查以下内容:如果字体呈现的是
:
字形,那么如果不将其拆分为多个视图,您将无能为力。您尚未显示您的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>
<?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" />
<?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>
<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>