关闭

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

2200人阅读 评论(0) 收藏 举报

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



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:97595次
    • 积分:783
    • 等级:
    • 排名:千里之外
    • 原创:18篇
    • 转载:0篇
    • 译文:0篇
    • 评论:60条
    文章分类
    最新评论