Как получить Базовую линию TextView с заданным шрифтом и размером шрифта? Пожалуйста, смотрите мой случай - PullRequest
0 голосов
/ 24 февраля 2012

Я устанавливаю собственный шрифт типа trur для моего TextView и задаю размер текста;затем, используя метод 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 голосов
/ 29 ноября 2012

Попробуйте получить базовую линию после того, как макет и рендеринг уже произошли. Это определенно после onCreate (...), например.

0 голосов
/ 24 февраля 2012

Вы объявили 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>
...