Witaj, chciałbym zapytać

Teraz mam mnóstwo textViews regulowane i stylizowane poprawnie problemem, gdy rozmiar ekranu zmienia textviews stają się zbyt duże lub zbyt małe

Próbowałem robić różne pliki układu, ale nie działa

Użyłem Sp i nadal tekst pokrywa ekran podczas przełączania z urządzenia do innego

Zrobiłem ponad 10 plików układowych dla różnych ekranów i nadal nie mogę się nad tym kontrolować

Pytanie brzmi :

Czy istnieje sposób, aby zmienić rozmiar tekstu logicznie zamiast tworzyć alternatywne układy lub pliki Dimens?

Oto przykład mojego kodu

    <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:tools="http://schemas.android.com/tools"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    tools:context="org.ultradroid.metaldetectorfree.welcome1"
    android:orientation="vertical"
    android:weightSum="1"
    tools:ignore="UseCompoundDrawables">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:ignore="UselessParent">

        <ImageView
            android:id="@+id/imageView8"
            android:layout_width="match_parent"
            android:layout_height="260dp"
            app:srcCompat="@drawable/metal"
            tools:ignore="ContentDescription" />

        <TextView
            android:id="@+id/textView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/welcome"
            android:textAlignment="center"
            android:textAppearance="@style/TextAppearance.AppCompat.Display1"
            android:textColor="@color/aqua"
            android:textSize="60sp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/textView2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/WelcomeTextDescription"
            android:textAlignment="center"
            android:textAppearance="@style/TextAppearance.AppCompat.Body1"
            android:textColor="@color/aqua"
            android:textSize="40sp"
            android:textStyle="bold" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="bottom"
            android:orientation="horizontal">

            <android.support.v7.widget.AppCompatButton
                android:id="@+id/next"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="@string/next"
                android:textAllCaps="false"
                android:textAppearance="@style/TextAppearance.AppCompat.Button"
                android:textColor="@color/white"
                android:textSize="20sp"
                android:textStyle="bold"
                app:backgroundTint="@color/aqua" />

        </LinearLayout>
    </LinearLayout>

</RelativeLayout>
1
Amir Emad 19 luty 2018, 21:01

3 odpowiedzi

Najlepsza odpowiedź

Cześć faceci znalazłem odpowiedź

Ta niesamowita biblioteka pomoże wszystkim zrobić to https://github.com/intit/sdp

Nie potrzeba wielu wymogów lub wielu układów, których potrzebujesz

2
Amir Emad 19 luty 2018, 18:37

To, co robisz źle, jesteś definiowany dla wszystkich wyświetleń tekstu Użyj dimens.xml, aby uzyskać różne rozmiary ekranu i przypisać wartości dimen do textViews jak na poniższym obrazie

Proponowałbym, aby spojrzeć na Dimenfy wtyczka, a także w To link.

enter image description here

1
Abdul Kawee 19 luty 2018, 18:10

Możesz użyć autostezyzacji dla TextView

<TextView
  android:layout_width="match_parent"
  android:layout_height="200dp"
  app:autoSizeTextType="uniform" />

Spowoduje to automatyczne dostosowanie rozmiaru tekstu zgodnie z szerokością ekranu

Aby uzyskać więcej informacji o przeczytaniu Oficjalna dokumentacja Android

0
Vamsi Smart 19 luty 2018, 18:40