canvas教程

canvas.concat(Matrix matrix)作用

字号+ 作者:H5之家 来源:H5之家 2017-10-18 11:08 我要评论( )

android学习7——canvas.concat(Matrix matrix)作用 canvas.concat的作用可以理解成对matrix的变换应用到canvas上的所有对象. 看下面的代码. public class ConcatMatrixActivity extends Activity {@Overridepublic void onCreate(Bundle savedInstanceState

android学习7——canvas.concat(Matrix matrix)作用

canvas.concat的作用可以理解成对matrix的变换应用到canvas上的所有对象.
看下面的代码.

public class ConcatMatrixActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags( WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(new ConcatMatrixView(this)); } } public class ConcatMatrixView extends View { private Matrix matrix = new Matrix(); private Paint bgPaint = new Paint(); public ConcatMatrixView(Context context) { super(context); matrix.setScale(2f, 2f); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); bgPaint.setColor(Color.RED); canvas.drawRect(0, 0, 100, 100, bgPaint); canvas.save(); canvas.concat(matrix); canvas.drawRect(100, 100, 200, 200, bgPaint); canvas.restore(); canvas.drawRect(400, 400, 500, 500, bgPaint); } }

以上代码对matrix的x和y坐标都拉伸了2倍.变化的效果如下所示:


在没有concat的情况下canvas.drawRect(100, 100, 200, 200, bgPaint);是在(100, 100), (200, 200)的区域下画一个矩形.因为执行了matrix.setScale(2f, 2f)所以matrix的x和y坐标都拉伸了2倍.这时候在concat的作用下canvas.drawRect(100, 100, 200, 200, bgPaint)变成了在(200, 200), (400, 400)的区域上画矩形.
同理,如果把对matrix的变换由matrix.setScale(2f, 2f)改成matrix.setTranslate(100f, 100f),效果如下所示:


x轴和y轴坐标都移动了100个像素.

posted on

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 对Canvas和Matrix的理解

    对Canvas和Matrix的理解

    2017-10-15 10:00

  • RenderTransform特效【五种基本变换】及【矩阵变换MatrixTransfo

    RenderTransform特效【五种基本变换】及【矩阵变换MatrixTransfo

    2017-07-13 11:00

  • Android的Paint、Canvas和Matrix讲解

    Android的Paint、Canvas和Matrix讲解

    2016-09-02 13:00

  • Android 画图之Matrix(二)

    Android 画图之Matrix(二)

    2015-10-08 14:21

网友点评
a