Android TextView onDraw应用矩阵转换

时间:2015-08-28 04:02:54

标签: android matrix textview gesture

为了让TextViews支持移动,缩放和旋转手势,我扩展了TextView类并重写了它的onDraw(Canvas)方法,从输入矩阵应用矩阵变换。

矩阵似乎是正确的,但它看起来不像正在重绘文本视图。任何有关解决这个问题的帮助都将非常感激。

更新:以下更新视图,但会违反裁剪界限

canvas.save();
canvas.concat(mMatrix);
// Call onDraw before restore (after updating the matrix)
super.onDraw(canvas);
canvas.restore();

原始代码:

public class GestureTextView extends TextView implements IGestureView
{
    private Matrix mMatrix;

    public GestureTextView(Context context)
    {
        super(context);
        mMatrix = getMatrix();
    }

    @Override
    protected void onDraw(Canvas canvas)
    {
        super.onDraw(canvas);
        canvas.save();
        canvas.concat(mMatrix);
        canvas.restore();
    }

    @Override
    public void setMatrix(Matrix matrix)
    {
        mMatrix = matrix;
        invalidate();
    }
}

0 个答案:

没有答案