Android(安卓)Canvas 裁剪 Region.Op.REPLACE
16lz
2021-12-21
实现类似效果:
主要功能代码:
package myapplication.lum.com.bird;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Path;import android.graphics.Region;import android.support.annotation.Nullable;import android.util.AttributeSet;import android.view.View;public class MyView extends View { private Paint mPaint; public MyView(Context context) { super(context); init(); } public MyView(Context context, @Nullable AttributeSet attrs) { super(context, attrs); init(); } public MyView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); init(); } @Override protected void onDraw(Canvas canvas) { canvas.translate(10, 10); canvas.save(); canvas.translate(560, 0); mPaint.setColor(Color.RED); canvas.drawCircle(200,200,100,mPaint); Path pathOne = new Path(); pathOne.addCircle(200,200,100,Path.Direction.CW); canvas.clipPath(pathOne); mPaint.setColor(Color.BLUE); canvas.drawCircle(300,200,100,mPaint); Path pathtwo = new Path(); pathtwo.addCircle(300,200,100,Path.Direction.CW); canvas.clipPath(pathtwo,Region.Op.REPLACE); drawScene(canvas); canvas.restore(); } private void drawScene(Canvas canvas){ canvas.drawRect(0, 0, getRight(), getBottom(), mPaint); } private void init() { mPaint = new Paint(); mPaint.setAntiAlias(true); mPaint.setStyle(Paint.Style.STROKE); mPaint.setStrokeWidth(10); mPaint.setColor(Color.YELLOW); }}
文章参考:
Canvas API详解(Part 2)剪切方法合集
更多相关文章
- Android通过画线实现button效果
- Android的拖拉功能-彩球示例
- android 拖拽图片
- android 动画
- android opengl es 七彩星星效果
- android 实现类似选项卡的UI
- Android(安卓)Shader渲染效果的使用
- android使用google map api详解
- 配置 Lync 2010 for iPhone