テキストの長さに基づいて正方形を作成し、回転できるようにしたいと思います。textview を拡張して onMeasure を変更したのですが、回転させると四角の上部にテキストが描画されてしまいます。回転を開始すると、テキストはそれ自体の中間点を中心に回転しません。
下の画像は、現在の状況の結果を赤で、望ましい状況を緑で示しています。黄色い点がピボットポイントです。
ご助力ありがとうございます!
import android.content.Context;
import android.graphics.Canvas;
import android.util.AttributeSet;
import android.widget.TextView;
public class MyTextView extends TextView {
private int angle = 0;
public MyTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec,heightMeasureSpec);
setMeasuredDimension(getMeasuredWidth(),getMeasuredWidth());
}
@Override
protected void onDraw(Canvas canvas) {
canvas.save();
canvas.translate(getCompoundPaddingLeft(), getExtendedPaddingTop());
canvas.rotate(angle, canvas.getWidth()/2f, canvas.getHeight()/2f);
getLayout().draw(canvas);
canvas.restore();
}
public void setAngle(int textAngle) {
angle = textAngle;
}
}