TextView – Das programmgesteuerte Festlegen der Textgröße scheint nicht zu funktionieren

Lesezeit: 5 Minuten

Benutzer-Avatar
Spam

Ich verwende Eclipse Indigo und teste auf 2 Emulatoren (2.2 und 3.0).

Der folgende Code zeigt, was ich jetzt teste, aber das Festlegen der Textgröße zeigt nichts auf dem Bildschirm, wenn ich versuche, den Emulator auszuführen. (Wenn ich die Textgröße auskommentiere, wird der Text rot angezeigt). Ich dachte, dass Eclipse den Code irgendwie nicht neu erstellt, aber ich fügte die Codezeile hinzu, um den blauen Hintergrund hinzuzufügen, und das funktionierte. Ich habe versucht, die Textgröße einzustellen, nachdem ich den Text eingestellt hatte, immer noch ohne Erfolg. der Code ist unten. Vielen Dank für Ihre Hilfe! (Haftungsausschluss) – Ich versuche, mich von XML fernzuhalten. Da ich Java bereits kenne, möchte ich mich nicht darauf verlassen.

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.widget.TextView;

public class TestAndroidvs2Activity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    TextView text = new TextView(this);
    text.setTextColor(Color.RED);
    text.setTextSize(2);    
    text.setBackgroundColor(Color.BLUE);
    text.setText("Hello Android");


    setContentView(text);
  }
}

Benutzer-Avatar
Houcine

die Methode TextView.setTextSize(int unit , float size); nimmt zwei Parameter.

Versuche dies :

text.setTextSize(TypedValue.COMPLEX_UNIT_SP,14);

verweisen Dies und Dies.

AKTUALISIEREN:
Jetzt die setTextSize(float size) legt die Textgröße fest automatisch in “scaled pixel” Einheiten. COMPLEX_UNIT_SP muss nicht manuell angegeben werden. Siehe die Dokumentation.

  • Dies ist die richtige Antwort. Genauer: float myTextSize = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, 18F, context.getResources().getDisplayMetrics());

    – Brillant Pappin

    19. Februar 2014 um 17:11 Uhr


Dies hat das Problem für mich behoben. Ich habe auf allen Geräten eine einheitliche Schriftgröße.

 textView.setTextSize(TypedValue.COMPLEX_UNIT_PX,getResources().getDimension(R.dimen.font));

  • Ist R.dimen.font eine einheitliche Nummer oder haben Sie unterschiedliche Größen für verschiedene Geräte?

    – Der_Marsmensch

    28. September 2015 um 23:42 Uhr


  • In meinem Fall habe ich Schriftart in den Dateien dimen.xml in diesen Ordnern deklariert: Werte, Werte-sw600dp, Werte-sw720dp mit bestimmten Werten.

    – Vikas

    29. September 2015 um 6:27 Uhr

  • Es ist seltsam, dass TextView nach dem Aufruf von textView.setTextSize(R.dimen.text_size_max) verschwunden ist, aber verwenden Sie Ihre Methode, es funktioniert.

    – li2

    1. April 2017 um 3:49 Uhr


Benutzer-Avatar
Linh

Zur Zeit, setTextSize(float size) Methode wird gut arbeiten also wir Sie müssen keine andere Methode verwenden zum Ändern der Textgröße

android.widget.TextView.java Quellcode

/**
 * Set the default text size to the given value, interpreted as "scaled
 * pixel" units.  This size is adjusted based on the current density and
 * user font size preference.
 *
 * <p>Note: if this TextView has the auto-size feature enabled than this function is no-op.
 *
 * @param size The scaled pixel size.
 *
 * @attr ref android.R.styleable#TextView_textSize
 */
@android.view.RemotableViewMethod
public void setTextSize(float size) {
    setTextSize(TypedValue.COMPLEX_UNIT_SP, size);
}

Beispiel mit

textView.setTextSize(20); // set your text size = 20sp

Textgröße 2 ist praktisch unsichtbar. Versuchen Sie es zumindest mit 14. Übrigens, die Verwendung von XML hat viele Vorteile und wird Ihnen das Leben erleichtern, wenn Sie etwas Komplexeres als „Hello World“ tun müssen.

Bitte sehen Dies Link für weitere Informationen zum Festlegen der Textgröße im Code. Grundsätzlich heißt es:

public void setTextSize (int-Einheit, Gleitkommagröße)

Seit: API Level 1 Legen Sie die Standardtextgröße auf eine bestimmte Einheit und einen bestimmten Wert fest. Sehen TypisierterWert für die möglichen Maßeinheiten. Zugehörige XML-Attribute

android:textSize-Parameter

Einheit Die gewünschte Maßeinheit.
Größe Die gewünschte Größe in den angegebenen Einheiten.

  • Ich habe gerade Eclipse in meinem Code doppelt überprüft und laut Intellisense habe ich tatsächlich 2 Optionen für setTextSize, setTextSize (float size), setTextSize (int unit, float size). Die von Ihnen verlinkte Dokumentation bestätigt dies.

    – Spam

    9. August 2011 um 15:52 Uhr


  • Richtig – hast du es versucht? Auch Nikolay sagt, dass 2 VIEL zu klein sein wird, um es zu sehen, versuchen Sie es auch mit einer Erhöhung.

    – Jack

    9. August 2011 um 15:56 Uhr

  • Ja, aber das Problem ist, wenn ich versuche, es so zu machen, wie ich es jetzt habe, wird der Text nicht einmal angezeigt. es ist nur ein leerer Bildschirm. Auch wenn 2 nicht sichtbar war, warum ist der Bildschirm leer?

    – Spam

    9. August 2011 um 15:57 Uhr

  • Es ist nicht leer. Wenn Sie ganz genau hinschauen, können Sie die kleinen roten Pixel sehen :). Erhöhen Sie die Größe allmählich, um zu sehen.

    – Nikolaj Elenkow

    9. August 2011 um 16:15 Uhr

  • Übrigens ist setTextSize(float) äquivalent zu setTextSize(COMPLEX_UNIT_SP, float).

    – Nikolaj Elenkow

    9. August 2011 um 16:23 Uhr

Benutzer-Avatar
Ziem

In meinem Fall verwendet Methode:

public static float pxFromDp(float dp, Context mContext) {
    return dp * mContext.getResources().getDisplayMetrics().density;
}

Hier einstellen TextSize von TextView programmatisch :

textView.setTextSize(pxFromDp(18, YourActivity.this));

Viel Spaß weiterhin 🙂

  • Ich habe gerade Eclipse in meinem Code doppelt überprüft und laut Intellisense habe ich tatsächlich 2 Optionen für setTextSize, setTextSize (float size), setTextSize (int unit, float size). Die von Ihnen verlinkte Dokumentation bestätigt dies.

    – Spam

    9. August 2011 um 15:52 Uhr


  • Richtig – hast du es versucht? Auch Nikolay sagt, dass 2 VIEL zu klein sein wird, um es zu sehen, versuchen Sie es auch mit einer Erhöhung.

    – Jack

    9. August 2011 um 15:56 Uhr

  • Ja, aber das Problem ist, wenn ich versuche, es so zu machen, wie ich es jetzt habe, wird der Text nicht einmal angezeigt. es ist nur ein leerer Bildschirm. Auch wenn 2 nicht sichtbar war, warum ist der Bildschirm leer?

    – Spam

    9. August 2011 um 15:57 Uhr

  • Es ist nicht leer. Wenn Sie ganz genau hinschauen, können Sie die kleinen roten Pixel sehen :). Erhöhen Sie die Größe allmählich, um zu sehen.

    – Nikolaj Elenkow

    9. August 2011 um 16:15 Uhr

  • Übrigens ist setTextSize(float) äquivalent zu setTextSize(COMPLEX_UNIT_SP, float).

    – Nikolaj Elenkow

    9. August 2011 um 16:23 Uhr

Benutzer-Avatar
Ahmed

In Kotlin können Sie einfach so verwenden,

textview.textSize = 20f

1345600cookie-checkTextView – Das programmgesteuerte Festlegen der Textgröße scheint nicht zu funktionieren

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy