写点什么

自定义 View:几何变换实质与技巧

用户头像
Changing Lin
关注
发布于: 刚刚
自定义View:几何变换实质与技巧

1.Canvas 的范围裁切

  • clipRect:切出一个矩形区域

  • clipPath:按照路径切出来,切出来无锯⻮效果


2.Canvas 的几何变换

  • translate(x, y):移动 Canvas

    rotate(degree):旋转 Canvas,记住逆时针是小于 0,顺时针是大于 0

    scale(x, y):放大缩小,1.0 表示原图,<0 表示反方向拉长

    skew(x, y):倾斜的大小


3.Matrix 的几何变换

  • preTranslate(x, y) / postTranslate(x, y)

  • preRotate(degree) / postRotate(degree)

  • preScale(x, y) / postScale(x, y)

  • preSkew(x, y) / postSkew(x, y)

4.代码

public class CustomView extends View {    Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
public CustomView(Context context, @Nullable AttributeSet attrs) { super(context, attrs); }
Bitmap bitmap;
Path path = new Path(); { bitmap = Util.getAvatar(getResources(), 400, R.drawable.inforec); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas);
// path.addOval(0, 0, 400, 400, Path.Direction.CW);// canvas.clipPath(path);
// canvas.clipRect(0, 100, 300, 300);
canvas.translate(300, 300); canvas.rotate(-45);// canvas.scale(1.8f, 1.0f); canvas.skew(0.1f, 0.8f); canvas.drawBitmap(bitmap, 0, 0, paint); }}
复制代码


发布于: 刚刚阅读数: 2
用户头像

Changing Lin

关注

获得机遇的手段远超于固有常规之上~ 2020.04.29 加入

我能做的,就是调整好自己的精神状态,以最佳的面貌去面对那些未曾经历过得事情,对生活充满热情和希望。

评论

发布
暂无评论
自定义View:几何变换实质与技巧