So reduzieren Sie den TextView Zeilenabstand

Ich versuche, reduzieren Sie den Zeilenabstand in einem TextView durch die Einstellung eines negativen "add", um TextView.setLineSpacing(). Es funktioniert gut, außer, dass die Unterste Zeile abgeschnitten.

Main 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: (beachten Sie 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");
    }
}

Diese Ergebnisse im abschneiden am unteren Rand der Ansicht (man beachte das 'g' auf der untersten Linie):

So reduzieren Sie den TextView Zeilenabstand

Es scheint, dass das problem auf falsche layout-Messung. Wenn ich den TextView zu

 android:layout_height="fill_parent"

Tut es richtig dargestellt:

So reduzieren Sie den TextView Zeilenabstand

Irgendeine Idee wie es zu lösen ist? Ich kümmere mich nicht um hässliche workarounds, wenn es hilft. Ich habe auch Zugang zu FontForge, und ich kann ändern Sie die schriftart-Datei, wenn nötig.

  • Geschieht es mit den eingebauten Schriften als gut? Oder jede andere benutzerdefinierte Schriftarten? Es könnte sein, dass die schriftart ist nicht die Berichterstattung der richtige Abstieg Wert.
  • in der letzten Zeile auch LineSpacing of -30f anwendet. das ist, warum die Letzte Zeile ist nicht richtig gesehen. so können Sie set bottom padding 30 in Ihrem case...@kcoppock ich glaube nicht, dass irgend etwas falsch in descent values
  • Ich bekomme das gleiche problem mit schriftart = Schriftart.SANS_SERIF;
  • hinzufügen android:paddingBottom="60dp", fügte ein Rand an der Unterseite, aber die Schrift ist immer noch abgeschnitten. Siehe imgur.com/du5xJ
InformationsquelleAutor user1139880 | 2012-08-12
Schreibe einen Kommentar