Ich habe nach einer Möglichkeit gesucht, einen Text in einer Textansicht automatisch anzupassen.Wie wird die Textgröße in einem mehrzeiligen TextView entsprechend der maximalen Ansicht der Ansicht automatisch angepasst?
Aber wie viele andere diese nicht mein Problem lösen: Durch meine Suche habe ich viele Lösungen wie gefunden. Sie funktionieren nicht wie erwartet, wenn wir eine TextView mit Multilinie verwenden.
Grundsätzlich mein Ziel ist es diese:
Wie Sie sehen können, wird der Text passt die Größe basierend auf Breite, Höhe und achtet auch auf den Zeilenumbruch, eine Schaffung mehrzeilige Textansicht. Auch in der Lage sein, die Schriftart zu ändern.
Eine meiner Ideen, diese zu lösen war so etwas wie dieses:
int size = CONSTANT_MAX_SIZE;
TextView tv = (TextView) findViewById(R.id.textview1)
while(Math.abs(tv.getMeasuredHeight()) >= TEXTVIEW_MAX_HEIGHT) {
size--;
tv.setTextSize(size);
tv.measure(MeasureSpec.UNSPECIFIED,MeasureSpec.UNSPECIFIED);
i++;
}
CONSTANT_MAX_SIZE ist eine Konstante, die die maximale Größe der Schrift (Textgröße Anstand in einem Textview)
TEXTVIEW_MAX_HEIGHT definiert eine Konstante ist Das definiert die maximale Größe, die die Textansicht haben kann.
Dies wurde jedes Mal aufgerufen, wenn der Text in der Textansicht geändert wurde.
Die Textview xml war so etwas wie dieses:
<TextView
android:id="@+id/textview1"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:singleLine="false"
android:inputType="textMultiLine"
android:text=""
android:textSize="150sp" />
Da die Breite in der XML beschränkt wäre, nur die Höhe der Ansicht muss da passt ihn zu betrachten android würde ein mehrzeiliges automatisch erstellen, wenn nötig .
Obwohl dies eine mögliche Lösung ist funktioniert nicht perfekt (weit davon entfernt) und es unterstützt nicht die Größe zu verkleinern (wenn Sie Text löschen).
Irgendwelche Vorschläge und/oder Ideen?
etwas Glück damit? – NaserShaikh
Überprüfen Sie die Antwort unter – nunofmendes