我想根据文本的长度创建一个正方形并能够旋转它。我已经扩展了 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;
}
}