Ich versuche, den Zeilenabstand in einem TextView zu reduzieren, indem Sie TextView.setLineSpacing() auf ein negatives "add" setzen. Es funktioniert gut, außer dass die untere Zeile abgeschnitten wird.So reduzieren Sie den TextView-Zeilenabstand
Haupt Layout
<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" />
Haupttätigkeit: (man beachte die
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");
}
}
Die am unteren Teil der Ansicht in Trunkierung führt (man beachte die 'g' in der untersten Zeile):
Es scheint, dass das Problem mit einer falschen Layoutmessung zusammenhängt. Wenn ich die Textview zu
android:layout_height="fill_parent"
Es richtig eingestellt ist Render:
eine Ahnung, wie man es beheben? Ich habe nichts dagegen, hässliche Workarounds zu haben, wenn es hilft. Ich habe auch Zugriff auf FontForge und kann die Schriftartdatei bei Bedarf ändern.
Kommt es vor, mit den eingebauten Schriften auch? Oder andere benutzerdefinierte Schriftarten? Es könnte sein, dass die Schriftart nicht den korrekten Abstiegswert meldet. – kcoppock
in der letzten Zeile gilt auch 'LineSpacing von -30f'. Deshalb wird die letzte Zeile nicht richtig angezeigt. so können Sie in Ihrem Fall "Bodenpolsterung" von 30 einstellen ... @ kcoppock Ich glaube nicht, dass irgendwas falsch in "Abstiegswerten" ist –
@kcoppock, bekomme ich das gleiche Problem mit typeface = Typeface.SANS_SERIF; – user1139880