VerticalTextView的实现

来源:互联网 发布:便宜已备案域名出售 编辑:程序博客网 时间:2024/04/26 18:20
public class VerticalTextView extends TextView{   final boolean topDown;   public VerticalTextView(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();  }}
点击打开链接
原创粉丝点击