webentwicklung-frage-antwort-db.com.de

Erhöhen Sie die Schriftgröße entsprechend der Größe des Geräts

Ich hatte vor, unterschiedliche Schriftgrößen für die Textansicht auf verschiedenen Gerätegrößen zu verwenden, um die Buchstaben lesbar zu machen. Ich habe bereits beschlossen, keine unterschiedlichen Layouts für verschiedene Geräte zu verwenden und ein gemeinsames Layout für alle Geräte zu erstellen. Jetzt ist das einzige Problem die Textgröße. 

Fragen :

  1. Ich hätte gerne technische Vorschläge, wie Sie die Schriftgröße basierend auf der Größe (der physischen Größe) des Geräts ändern können. 

  2. Wie lässt sich die Schriftgröße basierend auf dem Seitenverhältnis ableiten?.

  3. Irgendwelche Mängel bei der Verwendung dieser Art von Ansatz?

XML für die Textansicht

<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_width="fill_parent"
    Android:layout_height="fill_parent"
    Android:background="#ffffff"
    Android:orientation="vertical">

    <TextView
        Android:id="@+id/tvValue4"
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:text="I planned to use different font size for the textview on different device size so as to make the letters legible. I have already decided not to use different layouts for different devices and built a common layout to fit in all the devices. Now the only problem is on the text size."
        Android:textColor="#000000"
        Android:textSize="15sp" />

</LinearLayout>

Danke im Voraus

24
iappmaker

Ja, dieser Ansatz ist fehlerhaft. Android-Geräte haben unterschiedliche Größen, sie können jedoch auch sehr unterschiedliche Dichten haben.

enter image description here

Sie sollten nur das Android-Design Best Practices befolgen. 

enter image description here

Sie sind eigentlich sehr gut durchdacht. Warum wollen Sie das Rad neu erfinden? 

25

Versuchen Sie Folgendes: Fügen Sie dieses Attribut in Ihre XML ein. Es wird die Textgröße basierend auf der Bildschirmgröße angepasst. Versuchen Sie es.

 style="@Android:style/TextAppearance.DeviceDefault.Medium"
18
MuraliGanesan

Verwenden Sie für Schriftgrößen Skalierungspixel (sp). Android skaliert die Schriftgröße entsprechend der Gerätedichte entsprechend. Die obigen Beiträge haben eine bessere Erklärung und Begründung.

6
bostan
    String s= "hello";
    TextView tv= (TextView) findViewById(R.id.tv);
    Spannable span = new SpannableString(s);
    span.setSpan(new RelativeSizeSpan(5f), 0, span.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    tv.setText(span);

Ändern Sie basierend auf der Bildschirmgröße 5f nach Belieben.

http://developer.Android.com/guide/practices/screens_support.html . Überprüfen Sie das Thema unter Überschrift Best Practices.

2
Raghunandan

für diese Ausgabe verwende ich folgende Bibliothek in so vielen Projekten und halte das für fantastisch. Sie müssen sich nicht um Bildschirme kümmern. Sie müssen jedoch wieder separate Layouts für Registerkarten erstellen.

https://github.com/intuit/sdp

0
amar

Android hat eingebaute Einrichtungen für dieses - DP und SP. dp sind Gerätepixel. Im Grunde ist es 1dp = 1/160stel Zoll. Auf diese Weise können Sie die Höhe der Schrift in der Größe der realen Welt angeben. Sp ist skalierte Pixel. Diese Größe wird basierend auf der Standardschriftgröße skaliert, sodass ein Benutzer seine Systemschriftart skalieren kann und Ihre App mit dieser übereinstimmt. Praktisch für Menschen mit Sehstörungen, die großen Text benötigen, ohne für andere den Bildschirm zu beanspruchen.

Sie sollten wahrscheinlich die eine oder andere davon verwenden.

0
Gabe Sechan