Sto provando a ridurre l'interlinea in un TextView impostando un 'add' negativo a TextView.setLineSpacing(). Funziona bene, tranne che la linea di fondo viene troncata.Come ridurre l'interlinea di TextView
principale di 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" />
Principale attività: (notare la
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");
}
}
Questo si traduce in troncamento sul fondo della vista (notare la 'g' nella riga inferiore):
Sembra che il problema sia legato alla misurazione del layout non corretta. Se ho impostato il TextView a
android:layout_height="fill_parent"
Non visualizzato correttamente:
Qualsiasi idea di come risolvere il problema? Non mi dispiace avere brutte soluzioni alternative se aiuta. Ho anche accesso a FontForge e posso modificare il file di font, se necessario.
accade con i caratteri incorporati? O altri caratteri personalizzati? Potrebbe essere che il font non stia riportando il valore di discesa corretto. – kcoppock
sull'ultima riga si applica anche 'LineSpacing of -30f'. questo è il motivo per cui l'ultima riga non viene vista correttamente. così puoi 'settare il fondo padding' di 30 nel tuo caso ... @ kcoppock Non penso che ci sia qualcosa di sbagliato nei' valori di discesa' –
@kcoppock, ho lo stesso problema con typeface = Typeface.SANS_SERIF; – user1139880