更改字体/文本大小时Textview对齐问题

3

我在stackoverflow上查看了很多问题和答案,但是并没有发现对我的问题有帮助的内容。

我有两个大小相等、属性相同的TextView并排放置,xml布局如下(只有textsize不同):

<?xml version="1.0" encoding="utf-8"?>

    <TextView
        android:id="@+id/data_content_left"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight=".50"
        android:gravity="bottom|center"
        android:text="201.5"
        android:textSize="50sp"
        android:textStyle="bold"
        android:singleLine="true"
        android:ems="62" />

    <TextView
        android:id="@+id/data_content_right"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="0.50"
        android:ems="62"
        android:gravity="center|bottom"
        android:singleLine="true"
        android:text="201.5"
        android:textSize="20sp"
        android:textStyle="bold" />

以下是代码:

包含如下代码的文件:

package com.example.fonttest; import android.os.Bundle; import android.app.Activity; import android.graphics.Typeface; import android.view.Menu; import android.widget.LinearLayout; import android.widget.TextView;

公共类 MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    TextView textViewLeft  = (TextView) findViewById(R.id.data_content_left);
    TextView textViewRight = (TextView) findViewById(R.id.data_content_right);

    Typeface myTypeface = Typeface.createFromAsset(this.getAssets(), "fonts/wwDigital.ttf");

    textViewLeft.setTypeface(myTypeface, Typeface.NORMAL);
    textViewRight.setTypeface(myTypeface, Typeface.NORMAL);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}

为什么数字下方的“白色空间”随着文本/字体大小而改变高度?(见下图)

我如何确定问题是与字体还是与文本视图有关?

我正在使用这种字体:[http://www.dafont.com/ww-digital.font][3]

enter image description here

1个回答

1

在文本视图中使用相同的字体即 ttf,并使用android:ems在Textview中定义其最大和最小值。


谢谢!我以前没有见过android:ems属性。我尝试在相关的textview上指定android:ems,但它并没有改变任何东西。垂直的白色空间仍然随着文本大小的变化而改变... - niaren
在图形布局中,使用的字体仍然存在问题,因此我认为这个问题不是与字体有关(或者不仅与字体有关)。 - niaren
如果你认为字体不是问题,那么请下载其他兼容安卓系统的字体并使用它来代替。如果你遇到了字体方面的问题…… - user2007354
@user2007354 我不确定问题仅仅是由于字体引起的。即使使用默认字体,问题仍然存在。 - niaren
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接