How can you display upside down text with a textview in Android?

后端 未结 3 995
予麋鹿
予麋鹿 2020-11-29 07:18

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

相关标签:
3条回答
  • 2020-11-29 07:44

    the below code is working perfectly (thanks by the way). try to add the missing constructor. if it is not working my the problem is android version main is 2.1

    package p.c;
    
    import android.content.Context;
    import android.graphics.Canvas;
    import android.util.AttributeSet;
    import android.util.Log;
    import android.widget.TextView;
    
    public class TextViewUD extends TextView {
    
        public TextViewUD(Context context) {
            super(context);
            // TODO Auto-generated constructor stub
        }
    
        public TextViewUD(Context context, AttributeSet attrs) {
            super(context, attrs);
            // TODO Auto-generated constructor stub
        }
    
        public TextViewUD(Context context, AttributeSet attrs, int defStyle) {
            super(context, attrs, defStyle);
            // TODO Auto-generated constructor stub
        }
    
        @Override
        protected void onDraw(Canvas canvas) {
            canvas.save();
    
            float py = this.getHeight()/2.0f;
            float px = this.getWidth()/2.0f;
            Log.d("testUD", String.format("w: %d h: %d ", this.getWidth(), this.getHeight()));
            Log.d("testUD", String.format("w: %f h: %f ", py, px));
            canvas.rotate(180, px, py);
    
            super.onDraw(canvas);
    
            canvas.restore();
        }
    }
    
    0 讨论(0)
  • 2020-11-29 07:51

    I haven't tried doing this myself, but I think it should work.

    Override the view's onDraw method, call it's super passing in the canvas, then after call the rotate method on the canvas passed to it, passing in either 180 or Math.PI, depending on whether it works in degrees or radians.

    0 讨论(0)
  • 2020-11-29 07:57

    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"/>
    
    0 讨论(0)
提交回复
热议问题