Android Canvas skew() 倾斜
Canvas
提供了 skew()
方法用于倾斜当前 Canvas
对象一定角度
skew ( 倾斜 )
skew(float sx, float sy)
倾斜一定的角度
参数说明
参数 | 说明 |
---|---|
sx | 为 x 轴方向上倾斜的对应角度,tan(角度) |
sy | 为 y 轴方向上倾斜的对应角度,tan(角度) |
两个参数都是 tan 值,比如要在 x 轴方向上倾斜 60 度,那么 sx 为
tan(60) = 根号3 = 1.732
范例
-
创建一个 空的 Android 项目
cn.twle.android.CanvasSkew
-
自定义一个 View 类
MsView.java
package cn.twle.android.canvasskew; 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.translate(200, 200); canvas.skew(0.2f,-0.8f); canvas.drawText("简单教程,简单编程",0,200,mPaint); invalidate(); } }
-
修改
MainActivity.java
设置setContentView(new MsView(MainActivity.this))
package cn.twle.android.canvasskew; 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)); } }