在-90度旋转TextView的总 [英] Rotate total Textview in -90 degrees

查看:1193
本文介绍了在-90度旋转TextView的总的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想设置我的TextView的在-90度意味着我哈弗显示它这个样子!我ahve显示在单一的线性布局8 textviews。我能够旋转,但我可以看到只有一个textview.Please任何一个可以帮助我做一些例子。

先谢谢了。

 公共类AngledTextView扩展的TextView
{       公共AngledTextView(上下文的背景下,ATTRS的AttributeSet)
       {
          超(背景下,ATTRS);
       }       @覆盖
       保护无效的onDraw(帆布油画)
       {//保存当前矩阵
         canvas.save();
         //为中心旋转由此看来
         canvas.rotate(270,this.getWidth()/ 2,this.getHeight()/ 2);
         // 画出来
         super.onDraw(画布);
         //还原到previous矩阵
         canvas.restore();
        }
 }


解决方案

对于垂直的TextView我用下面的code和它完美工作。

 公共类VerticleTextView扩展的TextView {最终布尔自上而下;
公共VerticleTextView(上下文的背景下,ATTRS的AttributeSet){
    超(背景下,ATTRS);
    最终诠释比重= getGravity();
    如果(Gravity.isVertical(重力)及及(重力&放大器; Gravity.VERTICAL_GRAVITY_MASK)== Gravity.BOTTOM){
       setGravity((重力和放大器; Gravity.HORIZONTAL_GRAVITY_MASK)| Gravity.TOP);
       自上而下= FALSE;
    }其他
       自上而下= TRUE;
 } @覆盖
 保护无效onMeasure(INT widthMeasureSpec,诠释heightMeasureSpec){
    super.onMeasure(heightMeasureSpec,widthMeasureSpec);
    setMeasuredDimension(getMeasuredHeight(),getMeasuredWidth());
 } @覆盖
 保护无效的onDraw(帆布油画){
    TextPaint textPaint = getPaint();
    textPaint.setColor(getCurrentTextColor());
    textPaint.drawableState = getDrawableState();    canvas.save();    如果(自上而下){
       canvas.translate(的getWidth(),0);
       canvas.rotate(90);
    }其他{
       canvas.translate(0,的getHeight());
       canvas.rotate(-90);
    }
    canvas.translate(getCompoundPaddingLeft(),getExtendedPaddingTop());    。getLayout()画(油画);
    canvas.restore();
}
}

I want to set my textview in -90 degrees means i haver to show it like this! i ahve to show 8 textviews in single linear layout. i am able to rotate but i can see only one textview.Please can any one help me with some example.

Thanks in advance.

public class AngledTextView extends TextView
{ 

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

       @Override 
       protected void onDraw(Canvas canvas) 
       { // Save the current matrix 
         canvas.save(); 
         // Rotate this View at its center 
         canvas.rotate(270,this.getWidth()/2, this.getHeight() /2); 
         // Draw it 
         super.onDraw(canvas); 
         // Restore to the previous matrix 
         canvas.restore(); 
        } 
 } 

解决方案

for a vertical TextView i used the following code and it worked perfectly.

public class VerticleTextView extends TextView {

final boolean topDown;
public VerticleTextView(Context context, AttributeSet attrs){
    super(context, attrs);
    final int gravity = getGravity();
    if(Gravity.isVertical(gravity) && (gravity&Gravity.VERTICAL_GRAVITY_MASK) == Gravity.BOTTOM) {
       setGravity((gravity&Gravity.HORIZONTAL_GRAVITY_MASK) | Gravity.TOP);
       topDown = false;
    }else
       topDown = true;
 }

 @Override
 protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec){
    super.onMeasure(heightMeasureSpec, widthMeasureSpec);
    setMeasuredDimension(getMeasuredHeight(), getMeasuredWidth());
 }

 @Override
 protected void onDraw(Canvas canvas){
    TextPaint textPaint = getPaint(); 
    textPaint.setColor(getCurrentTextColor());
    textPaint.drawableState = getDrawableState();

    canvas.save();

    if(topDown){
       canvas.translate(getWidth(), 0);
       canvas.rotate(90);
    }else {
       canvas.translate(0, getHeight());
       canvas.rotate(-90);
    }


    canvas.translate(getCompoundPaddingLeft(), getExtendedPaddingTop());

    getLayout().draw(canvas);
    canvas.restore();
}
}

这篇关于在-90度旋转TextView的总的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆