вращение TextView и повторное измерение в Android - PullRequest
0 голосов
/ 18 декабря 2011

Я пытаюсь создать вертикальное текстовое представление со следующим кодом

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 голосов
/ 18 декабря 2011

В этом подобном вопросе (посмотрите на ответ kostmo, а не принятый), он использует два пользовательских метода для вычисления размера представления (measureHeight и measureWidth).

Так что super.setMeasuredDimension(getMeasuredHeight(), getMeasuredWidth()); выглядит неверно в соответствии с его ответом.

Похоже, вы также можете скопировать / вставить его ответ, я думаю, это то, чего вы пытаетесь достичь.

...