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

原创 2013年12月04日 12:12:41

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中的裁剪中Region.Op参数的用法

在Android自定义View使用绘图的裁剪功能的时候,我们最好manifest中的 或者或者标签中添加如下属性 android:hardwareAccelerated="false" 因为裁剪功能...
  • eyishion
  • eyishion
  • 2016年12月18日 20:19
  • 2833

android canvas常用的方法解析(一)

android canvas常用的方法解析
  • coderinchina
  • coderinchina
  • 2016年05月18日 19:07
  • 5329

Android动画篇(三):canvas.clipRect 纠错篇

前言之前说要整合一下我们做出来的效果,我已经弄完了,首先别的不说,工程量比我预想的要多的多,而且踩了不少的坑,尤其是canvas.clipRect的使用上出现了一点问题,所以想趁着下班前简单的写一下对...
  • u011315960
  • u011315960
  • 2017年07月13日 18:53
  • 147

Android Studio使用教程(一)

今年的Google全球开发者大会虽然没有新的Android系统和设备,但是还是推出了一些不错的产品,Android Studio就是其中之一。这个基于Intellij IDEA开发的Android I...
  • sunylat
  • sunylat
  • 2013年06月23日 22:21
  • 179248

Android中JNI的使用

Android中JNI的使用        我们知道在android中进程保活,热修复,硬件接入等等都需要底层的支持,而底层代码是 C 、C++ 写的,那么在 Android 中怎么调用底层的库呢?这...
  • fuwei52331314
  • fuwei52331314
  • 2017年02月15日 17:12
  • 628

Android注解使用快速入门

注解是那些插入到源码中用于某种工具处理的标签。在java语言中,注解被当作一个修饰符使用的,每个注解的名称前面都加上了@符号。注解自身并不会做任何事情,它需要通过注解事件处理器处理后,才会有用。注解在...
  • czhpxl007
  • czhpxl007
  • 2016年02月16日 23:08
  • 1013

Android开发之Android studio使用git(一)

本文来自互联网总结 ,主要介绍在Android studio 上简单使用git
  • itluochen
  • itluochen
  • 2016年09月01日 15:18
  • 2047

如何使用Android命令

作为Windows用户,拥有着出色的图形化界面体验,但命令行则的图形化界面的根基,下面就来看看如何用命令行来执行android命令吧。首先你得进入你的Android SDK的安装目录的tools子目录...
  • NoMasp
  • NoMasp
  • 2015年09月04日 21:10
  • 2746

Android框架之路——EventBus的使用

一、简介 EventBus是由greenrobot 组织贡献的一个Android事件发布/订阅轻量级框架。EventBus是一个Android端优化的publish/subscribe消息总线,简...
  • bskfnvjtlyzmv867
  • bskfnvjtlyzmv867
  • 2017年05月09日 16:52
  • 1239

android 使用ffmpeg 并调用接口 .

http://blog.csdn.net/kaven826/article/details/14517189 由于最近要做一个音频视频合成的东东,经过各方面的资料查找,开始锁定javaCV,想用...
  • wangjianzhongfj
  • wangjianzhongfj
  • 2014年09月07日 19:42
  • 12485
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android canvas.clipRect的Region.Op.XOR使用
举报原因:
原因补充:

(最多只允许输入30个字)