sventoepke.de

Ich erschaffe das, was Sie sich vorstellen

Android – TextView spiegeln

Leider gibt es keine fertige View oder Methode in Android einen Text zu spiegeln, wie es bei der SDK des Apple iPhones der Fall ist. Tja wenn Du kein iPhone hast, hast Du kein iPhone. Ach ja? Dann schreiben wir uns eben selbst eine View und ermöglichen unserer AndroidApp gespiegelte Texte anzuzeigen und das innerhalb weniger Schritte.

Zu Beginn legen wir ein neues Paket in eurem Stamm an. Hier habe ich es „customviews“ gennant.

de.sventoepke.customviews;

Nun erstellen wir eine neue Klasse mit dem Namen MirroredTextView die einfach die TextView erweitert.

package de.sventoepke.customviews;

import android.content.Context;
import android.graphics.Canvas;
import android.util.AttributeSet;
import android.widget.TextView;

public class MirroredTextView extends TextView {

    public MirroredTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        canvas.translate(getWidth(), 0);
        canvas.scale(-1, 1);
        super.onDraw(canvas);
    }
}

Jetzt könnt Ihr gespiegelte Texte in Eurer App benutzen, in dem Ihr einfach in der Layout XML Datei anstatt einer normalen TextView nun die neue View einfügt.

<TextView
        android:id="@+id/txtView"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        ...

…ändern in…

<de.sventoepke.customviews.MirroredTextView
        android:id="@+id/txtView"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        ...

Fertig. Man braucht nun nichtmal den Emulator starten, sondern sieht es bereits im WYSIWYG-Editor (beispielsweise Eclipse) das die Werte spiegelverkehrt sind.