我正在尝试使用以下代码创建垂直文本视图
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());
}
}
然而,我发现它没有重新定义新高度的全宽。因此文本真的被截断了。
有什么想法吗? 米
答案 0 :(得分:0)
在这个similar question中(看看kostmo回答不是公认的回答),他使用两种自定义方法来计算视图的大小(measureHeight
和measureWidth
)。
所以super.setMeasuredDimension(getMeasuredHeight(), getMeasuredWidth());
根据他的回答看起来不对。
似乎你可以复制/粘贴他的答案,我认为这是你想要实现的目标。