Próbuję zmniejszyć odstępy między wierszami w TextView, ustawiając ujemny "add" na TextView.setLineSpacing(). Działa dobrze, z wyjątkiem tego, że dolna linia zostanie obcięta.Jak zmniejszyć odstęp między wierszami w programie TextView?
Główny układ
<TextView
android:id="@+id/text_view"
android:padding="dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
tools:context=".MainActivity" />
Główna działalność: (zawiadomienie
package com.font_test;
import android.app.Activity;
import android.graphics.Typeface;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final Typeface typeface = Typeface.createFromAsset(getAssets(), "fonts/custom_fonts.ttf");
final TextView tv = (TextView) findViewById(R.id.text_view);
tv.setTypeface(typeface);
tv.setTextSize(60);
tv.setLineSpacing(-30f, 1f); // *** -30 to reduce line spacing
tv.setBackgroundColor(0x280000ff);
tv.setText("gggkiiikkk" + "\n" + "gikgikgik" + "\n" + "kigkigkig");
}
}
Powoduje to skrócenie u dołu widoku (zawiadomienie 'g' w dolnym wierszu):
Wygląda na to, że problem jest związany z nieprawidłowym pomiarem układu. Jeżeli ustawić TextView do
android:layout_height="fill_parent"
To jest poprawnie:
jakiś pomysł jak to naprawić? Nie mam nic przeciwko brzydkim obejściom, jeśli to pomaga. Mam również dostęp do FontForge i mogę w razie potrzeby zmodyfikować plik czcionki.
Czy zdarza z wbudowanymi czcionkami? Lub inne niestandardowe czcionki? Możliwe, że czcionka nie zgłasza prawidłowej wartości zejścia. – kcoppock
w ostatniej linii również stosuje się "LineSpacing of -30f". dlatego ostatnia linia nie jest poprawnie widoczna. więc możesz "ustawić dolny margines" na 30 w twoim przypadku ... @ kcoppock Nie sądzę, że coś złego w "wartościach zejścia" –
@kcoppock, pojawia się ten sam problem z krojem czcionki = Typeface.SANS_SERIF; – user1139880