旋转TextView并在Android中重新测量

时间:2011-12-18 11:57:19

标签: android textview rotation

我正在尝试使用以下代码创建垂直文本视图

public class VerticalTextView extends TextView{

public VerticalTextView(Context context) {
    super(context);
    // TODO Auto-generated constructor stub
}

public VerticalTextView(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
    // TODO Auto-generated constructor stub
}

public VerticalTextView(Context context, AttributeSet attrs) {
    super(context, attrs);
    // TODO Auto-generated constructor stub
}

@Override
protected void onDraw(Canvas canvas) {
    Log.i("VerticalTextView", "onDraw Called");
    canvas.save();
    canvas.rotate(-90, getWidth() / 2, getHeight() / 2);
    super.onDraw(canvas);
    canvas.restore();

}

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    // TODO Auto-generated method stub
    super.onMeasure(heightMeasureSpec, widthMeasureSpec);
    super.setMeasuredDimension(getMeasuredHeight(), getMeasuredWidth());

}



}
然而,我发现它没有重新定义新高度的全宽。因此文本真的被截断了。

有什么想法吗? 米

1 个答案:

答案 0 :(得分:0)

在这个similar question中(看看kostmo回答不是公认的回答),他使用两种自定义方法来计算视图的大小(measureHeightmeasureWidth)。

所以super.setMeasuredDimension(getMeasuredHeight(), getMeasuredWidth());根据他的回答看起来不对。

似乎你可以复制/粘贴他的答案,我认为这是你想要实现的目标。