How can you display upside down text with a textview in Android?
In my case I have a 2 player game, where they play across from each other. I want to display test to the second player oriented to them.
This was the solution I implemented after AaronMs advice
The class that does the overriding, bab.foo.UpsideDownText
package bab.foo; import android.content.Context; import android.graphics.Canvas; import android.util.AttributeSet; import android.widget.TextView; public class UpsideDownText extends TextView { //The below two constructors appear to be required public UpsideDownText(Context context) { super(context); } public UpsideDownText(Context context, AttributeSet attrs) { super(context, attrs); } @Override public void onDraw(Canvas canvas) { //This saves off the matrix that the canvas applies to draws, so it can be restored later. canvas.save(); //now we change the matrix //We need to rotate around the center of our text //Otherwise it rotates around the origin, and that's bad. float py = this.getHeight()/2.0f; float px = this.getWidth()/2.0f; canvas.rotate(180, px, py); //draw the text with the matrix applied. super.onDraw(canvas); //restore the old matrix. canvas.restore(); } }
And this is my XML layout:
<bab.foo.UpsideDownText android:text="Score: 0" android:id="@+id/tvScore" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#FFFFFF" > </bab.foo.UpsideDownText>
in the xml file add:
android:rotation = "180"
in the respective element to display text upside down.
for example:
<TextView android:id="@+id/textView1" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:text="TextView" android:rotation="180"/>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With