TextView – Das programmgesteuerte Festlegen der Textgröße scheint nicht zu funktionieren
Lesezeit: 5 Minuten
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);
}
}
Houcine
die Methode TextView.setTextSize(int unit , float size); nimmt zwei Parameter.
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.
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
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).
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
Ahmed
In Kotlin können Sie einfach so verwenden,
textview.textSize = 20f
13456000cookie-checkTextView – Das programmgesteuerte Festlegen der Textgröße scheint nicht zu funktionierenyes