Android 自定义View Clip

匿名 (未验证) 提交于 2019-12-03 00:08:02

先画俩矩形

          RectF rectF = new RectF(0,0,300,300);         canvas.drawRect(rectF,mPaint);          mPaint.setColor(Color.GREEN);          RectF rectF2 = new RectF(400,400,600,600);         canvas.drawRect(rectF2,mPaint);

然后 说是 有讲究

          canvas.clipRect(0, 0, 300, 300); //        canvas.clipRect(200, 200, 500, 500, Region.Op.DIFFERENCE);           RectF rectF = new RectF(0,0,300,300);         canvas.drawRect(rectF,mPaint);          mPaint.setColor(Color.GREEN);          RectF rectF2 = new RectF(200,200,500,500);         canvas.drawRect(rectF2,mPaint);

     canvas.clipRect(0, 0, 300, 300);         canvas.clipRect(200, 200, 500, 500, Region.Op.DIFFERENCE);           RectF rectF = new RectF(0,0,300,300);         canvas.drawRect(rectF,mPaint);          mPaint.setColor(Color.GREEN);          RectF rectF2 = new RectF(200,200,500,500);         canvas.drawRect(rectF2,mPaint);

第二个

   canvas.clipRect(0, 0, 300, 300);         canvas.clipRect(200, 200, 500, 500, Region.Op.INTERSECT);           RectF rectF = new RectF(0,0,300,300);         canvas.drawRect(rectF,mPaint);          mPaint.setColor(Color.GREEN);          RectF rectF2 = new RectF(200,200,500,500);         canvas.drawRect(rectF2,mPaint);

     canvas.clipRect(0, 0, 300, 300, Region.Op.DIFFERENCE);         canvas.clipRect(200, 200, 500, 500);          RectF rectF = new RectF(0, 0, 300, 300);         canvas.drawRect(rectF, mPaint);          mPaint.setColor(Color.GREEN);          RectF rectF2 = new RectF(200, 200, 500, 500);         canvas.drawRect(rectF2, mPaint); 

       if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {          canvas.clipPath(path);      } else {          canvas.clipPath(path, Region.Op.XOR);// REPLACE、UNION 等类型      } 

      canvas.clipRect(200, 200, 500, 500, Region.Op.INTERSECT);           RectF rectF = new RectF(0, 0, 300, 300);         canvas.drawRect(rectF, mPaint);          canvas.clipRect(0, 0, 300, 300, Region.Op.DIFFERENCE);          mPaint.setColor(Color.GREEN);          RectF rectF2 = new RectF(200, 200, 500, 500);         canvas.drawRect(rectF2, mPaint); 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!