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.java
package 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)); } }