如何获得给定字体和字体大小的TextView基线?请看我的案子

时间:2012-02-24 09:14:45

标签: android android-listview android-fonts

我正在设置TextView的自定义trur类型字体并设置文本大小;然后使用setText()方法我将文本设置为TextView。它显示了完美的文字。但是,当我尝试获得此TextView的基线时,它显示1或-1。为什么?

我这样做;

TextView tv;
tv.setTypeface(Typeface.createFromAsset(getAssets(),"customFont.ttf"));
tv.setTextSize(20);
tv.setText("My name is Tahir");

tv.getBaseline(); 
//this returns -1. (if i set Height and width of tv suppose 100 the getBaseline() retruns 1)
tv.getTop();
tv.getBottom();

请帮我解决可能的问题???

2 个答案:

答案 0 :(得分:0)

您是否在线性或相对布局中声明android:baselineAligned,无论您使用什么 在你的xml中。

例如:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:baselineAligned="true" >

    <TextView  
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:text="@string/hello"
        android:id="@+id/text1" />

</LinearLayout>

答案 1 :(得分:0)

尝试在布局和渲染完成后获取基线。那肯定是在onCreate(...)之后,例如。