Android Canvas scale() 缩放
Canvas 提供了 scale() 方法用于缩放当前 Canvas 对象
scale ( 缩放 )
void scale(float sx, float sy) final void scale(float sx, float sy, float px, float py)
对画布进行缩放
参数说明
| 参数 | 说明 |
|---|---|
| sx | 水平方向缩放比例,小于 1 为缩小,大于 1 为放大 |
| sy | 竖直方向的缩放比例,小于 1 为缩小,大于 1 为放大 |
| px | 指定旋转的中心点坐标的 x 坐标 |
| py | 指定旋转的中心点坐标的 y 坐标 |
范例

-
创建一个 空的 Android 项目
cn.twle.android.CanvasScale -
自定义一个 View 类
MsView.javapackage cn.twle.android.canvasscale; 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); mPaint.setTextSize(48.0f); canvas.drawText("简单教程,简单编程",0,200,mPaint); canvas.scale(0.8f, 0.8f); canvas.drawText("简单教程,简单编程",0,200,mPaint); canvas.scale(0.8f, 0.8f); canvas.drawText("简单教程,简单编程",0,200,mPaint); invalidate(); } }
-
修改
MainActivity.java设置setContentView(new MsView(MainActivity.this))package cn.twle.android.canvasscale; 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)); } }