To co się dzieje w podglądzie i na urządzeniu: Android tekst TextView obcięta po bokach z niestandardowej czcionki
TextView to nic specjalnego, po prostu ładuje czcionki niestandardowe:
public class TestTextView extends AppCompatTextView {
public TestTextView(Context context) {
super(context);
init(context);
}
public TestTextView(Context context, AttributeSet attrs) {
super(context, attrs);
init(context);
}
public TestTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init(context);
}
void init(Context context) {
Typeface t = Typeface.createFromAsset(context.getAssets(), "fonts/daisy.ttf");
setTypeface(t);
}
}
Układ jest bardzo prosty, ale na wszelki wypadek:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/material_red200"
android:orientation="vertical">
<*custompackage* .TestTextView
android:gravity="left"
android:padding="0dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="just some text for testing"
android:textColor="@color/material_black"
android:textSize="100dp" />
</LinearLayout>
Jak widać, po lewej części, takie jak „j” i „F” są odcięte.
Ustawienie wypełnienia lub marginesu nie działa.
Ta czcionka pasuje do ramki podczas korzystania z innych programów.
Z góry dziękuję.
Edytuj: To, o czym wspomniałem @play_err_, nie jest rozwiązaniem w moim przypadku.
- Używam w wersji ostatecznej widok tekstowy, który zmienia rozmiar automatycznie, więc dodanie spacji byłoby strasznie trudne.
- muszę wyjaśnić, dlaczego inne programy (np photoshop, after effects ...) można obliczyć właściwą obwiednię i android nie może
Ja również ładowanie różnych czcionek dynamicznie i nie chcę, aby utworzyć
if(badfont) addSpaces()
spróbować usunąć 'android: dopełnienia = "0dp" ' –
@AlexanderTumanin nie ma to żadnego wpływu na wynik. – andras
Spróbuj dodać białe spacje za ostatnim znakiem lub ustaw stałą szerokość dla TestTextView. –