android canvas.clipRect的Region.Op.XOR使用

Region.Op有以下操作,类似于集合:

            //DIFFERENCE是第一次不同于第二次的部分显示出来
            //REPLACE是显示第二次的
            //REVERSE_DIFFERENCE 是第二次不同于第一次的部分显示
            //INTERSECT交集显示
            //UNION全部显示
            //XOR补集 就是全集的减去交集生育部分显示

用一个例子来测试如下:

package com.example.androidtest2;


import android.app.Activity;
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.os.Bundle;
import android.view.View;


public class MainActivity extends Activity {
 
  @Override
  public void onCreate(Bundle savedInstanceState){
  super.onCreate(savedInstanceState);
  setContentView(new SampleView(this));
  }
   private static class SampleView extends View {
       private Paint mPaint;
       private Path mPath;
       public SampleView(Context context) {
           super(context);
           setFocusable(true);
           
           mPaint = new Paint();
           mPaint.setAntiAlias(true);
           mPaint.setStrokeWidth(6);
           mPaint.setTextSize(16);
           mPaint.setTextAlign(Paint.Align.RIGHT);
           
           mPath = new Path();
       }
       
       @Override 
       protected void onDraw(Canvas canvas) {
                canvas.drawColor(Color.GRAY);              


                  
                canvas.save();  
                canvas.translate(10, 10);  
                canvas.clipRect(0, 0, 100, 100);  
                canvas.clipRect(50, 50, 150, 150, Region.Op.XOR);  //修改成对应的操作,就可以知道其作用了
                canvas.drawColor(Color.WHITE); 
                canvas.restore();  
   
                }
   }
}


源代码下载

http://yunpan.cn/QUXrTm9MYpzIG



阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

android canvas.clipRect的Region.Op.XOR使用

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭