Ellipsengröße funktioniert bei einer mehrzeiligen Textansicht mit einer beliebigen maximalen Höhe nicht ordnungsgemäß

Ich habe einTextView mit einer unbekannten maximalen Höhe, die von der DPI / Bildschirmauflösung des Geräts abhängt. So können beispielsweise auf einem MDPI-Gerät mit dieser maximalen Höhe nur zwei Zeilen gleichzeitig angezeigt werden, ein Wert, der auf eine undefinierte Zahl erhöht werden kann.

Mein Problem hängt mit der Ellipsize-Funktionalität zusammen. Angenommen, ein bestimmtes Gerät ermöglicht die Anzeige von 4 Zeilen. Wenn ich die maximale Anzahl der Zeilen wie folgt manuell einstelle ...

<TextView
    android:id="@+id/some_id"
    android:layout_width="fill_parent"
    android:layout_height="0dip"
    android:ellipsize="end" 
    android:maxLines="4"
    android:singleLine="false"
    android:layout_weight="1"
    android:gravity="center_vertical"
    android:text="This is some really really really really really long text"
    android:textSize="15sp" />

... alles funktioniert in Ordnung. Wenn der Text nicht richtig passt, werden die Auslassungspunkte wie folgt am Ende der vierten Zeile eingefügt:

This is some
really really
really really
really long...

Aber ich würde liebernicht Stellen Sie die Anzahl der Zeilen als statische Variable ein, da ich es vorziehen würde, eine beliebige Kombination von DPI / Bildschirmauflösung zu unterstützen. Also wenn ich entfernemaxLines Die Auslassungspunkte werden in Zeile 4 nicht mehr korrekt angezeigt und zeigen stattdessen einen unvollständigen Teil des Texts:

This is some
really really
really really
really long

Wenn ich das etwas erhöheTextView Größe kann ich sehen, dass der Rest des Textes immer noch "hinter" dem anderen gezeichnet wirdViews. Variable setzenmaxHeight scheint auch nicht zu funktionieren.

Ich kann wirklich keine Lösung für dieses Problem finden. Irgendwelche Ideen? Wenn es hilft, arbeite ich nur mit Android v4.0.3 und höher (API Level 15).

Antworten auf die Frage(1)

Ihre Antwort auf die Frage