Erscheinungsbild des Zählerprogramms unter Android [] (Erscheinungsbild des Zählerprogramms unter Android), Lektion, Seite 723436
https://www.purl.org/stefan_ram/pub/erscheinungsbild_android (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
Android-Entwicklung

Erscheinungsbild des Textfeldes unter Android 

Ein angepaßtes Textfeld

Das Textfeld für die Anzeige der Zahl sieht noch nicht so aus, wie dies ursprünglich geplant war. Beispielsweise ist die angezeigte Zahl auf den meisten Geräten noch zu klein.

Um das Erscheinungsbild des Textfeldes an den ursprünglichen Plan anzupassen, schreiben wir eine angepaßte Klasse für das Textfeld.

Angepaßte Textfeldklasse

/** Ein Objekt der Klasse {@code TextView} repräsentiert eine
speziell für {@code CounterView} gestaltetes Textfeld zur
Umsetzung der Vorgaben für das Erscheinungsbild des Programmes. */

class TextView extends android.widget.TextView
{

/** Konstruiert ein {@code TextView}-Objekt.

@param context Der für das neue Objekt zu verwendende Kontext.
Die Bedeutung des Parameters {@code context} für dieses Objekt ist wie unter
{@link android.view.View#View(android.content.Context)} für {@code View} angegeben. */

public TextView( final android.content.Context context )
{ super( context ); setIncludeFontPadding( false ); }

/** Paßt die Textgröße an.

Diese Methode wird in anderen Methoden dieser Klasse aufgerufen, um
nach möglichen Änderungen die Textgröße auf die gewünschte Größe zu
skalieren. (Da dieses Textfeld nur für Ziffern gedacht ist, die keine
Unterlängen haben, kann die Ziffer vergrößert werden, um den sonst
für Unterlängen gedachten Raum auszunutzen.) */

private void resizeText()
{ this.setTextSize
( android.util.TypedValue.COMPLEX_UNIT_PX,
this.getMeasuredHeight() * 1.25f ); }

/** Paßt die Textgröße an.

Diese Methode wird aufgerufen, um es einem View zu erlauben,
seine Größe unter Berücksichtigung der Vorgaben festzulegen.

Wir überschreiben sie hier, um nach der Festlegung der Größe,
unsere {@code resizeText}-Methode aufzurufen. */

@java.lang.Override protected void onMeasure
( final int widthMeasureSpec, final int heightMeasureSpec )
{ super.onMeasure( widthMeasureSpec, heightMeasureSpec );
resizeText(); }

/** Reagiert auf Veränderung des Textes.

Diese Methode wird aufgerufen, wenn ein neuer Text festgelegt
wurde.

Wir überschreiben sie hier, um nach der Festlegung eines neuen
Textes unsere {@code resizeText}-Methode aufzurufen. */

@java.lang.Override protected void onTextChanged
( final CharSequence text, final int start,
final int before, final int after ){ resizeText(); }

/** Reagiert auf Veränderung der Größe.

Diese Methode wird aufgerufen, wenn eine neue Größe für das
View festgelegt wurde.

Wir überschreiben sie hier, um nach der Festlegung einer neuen
Größe unsere {@code resizeText}-Methode aufzurufen. */

@java.lang.Override protected void onSizeChanged
( final int width, final int height, final int oldWidth,
final int oldHeight )
{ if( height != oldHeight )resizeText(); }

/** {@inheritDoc}

Hier wird die Schriftposition angepaßt. */

@java.lang.Override
protected void onDraw( final android.graphics.Canvas canvas )
{ canvas.save();
{ canvas.translate( 0.0f, this.getMeasuredHeight() * 0.28f );
if( getLayout() != null )getLayout().draw( canvas );
canvas.restore(); }}}

Je mehr das Erscheinungsbild eines Programmes an bestimmte Vorstellungen angepaßt wird, desto empfindlicher wird das Programm allerdings gegenüber Variationen seiner Umgebung. Bei dem obigen Programm ist es möglich, daß die eingestellten Verschiebungen und Vergrößerungen der Schriftart unter manchen Umständen dazu führen können, daß der Text nicht mehr richtig angezeigt wird. Daher ist es bei solchen Programmen wichtiger, sie unter verschiedenen Geräten zu prüfen als bei Programmen, die einfach alle vorgegebenen Standards übernehmen.

Übungsaufgaben

/   Einbau der neuen Klasse

Fügen Sie die in dieser Lektion vorgestellte Klassendeklaration an einer geeigneten Stelle in das Programm der vorherigen Lektion ein und passen Sie es so an, daß die eingefügte Klassendeklaration zur Anzeige der Zahl verwendet wird.

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram723436 stefan_ram:723436 Erscheinungsbild des Zählerprogramms unter Android Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd723436, slrprddef723436, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/erscheinungsbild_android