Android Canvas translate() 平移
Canvas
提供了 translate()
方法用于平移当前 Canvas
对象一定距离
translate() 平移
translate(float dx, float dy)
平移就是将画布的坐标原点向左右方向移动 x,向上下方向移动 y
canvas 默认坐标原点位置为左上角 (0,0)
参数说明
参数 | 说明 |
---|---|
dx | 为水平方向的移动距离 |
dy | 为垂直方向的移动距离 |
范例
-
创建一个 空的 Android 项目
cn.twle.android.CanvasTranslate
-
自定义一个 View 类
MsView.java
package cn.twle.android.canvastranslate; import android.content.Context; import android.graphics.Canvas; import android.graphics.Paint; import android.support.v7.widget.AppCompatImageView; public class MsView extends AppCompatImageView { public MsView(Context context) { super(context, null); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); Paint mPaint = new Paint(); mPaint.setFlags(Paint.ANTI_ALIAS_FLAG); mPaint.setAntiAlias(true);// 抗锯尺 mPaint.setColor(0xffff0000); mPaint.setStyle(Paint.Style.FILL_AND_STROKE); for(int i=0; i < 5; i++) { canvas.drawCircle(50, 50, 50, mPaint); canvas.translate(100, 100); } invalidate(); } }
-
修改
MainActivity.java
设置setContentView(new MsView(MainActivity.this))
package cn.twle.android.canvastranslate; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(new MsView(MainActivity.this)); } }