Android自定义橡皮擦效果

  

本文实例为大家分享了Android自定义橡皮擦效果,使用贝塞尔曲线处理曲线转折处

        公开课picFingerToTest扩展视图{      私人油漆涂料;   私人位图decodeResourceSRC;   私人位图createBitmapDST;//手指路径,使用贝塞尔路线   私人道路路径;   私人perX浮动;   私人perY浮动;      公共picFingerToTest(上下文语境,AttributeSet attrs) {   超级(上下文,attrs);//1,设置禁用硬件设置   setLayerType(视图。LAYER_TYPE_SOFTWARE, null);//2,设置手指画笔   涂=new ();   paint.setAntiAlias(真正的);   paint.setColor (Color.RED);   paint.setStyle (Paint.Style.STROKE);   paint.setStrokeWidth (45);//3、生成图像手指源目标//源   R.drawable decodeResourceSRC=https://www.yisu.com/zixun/BitmapFactory.decodeResource (getresource ()。欢迎,null);//目标   createBitmapDST=Bitmap.createBitmap (decodeResourceSRC.getWidth (), decodeResourceSRC.getHeight (),   Config.ARGB_8888);   路径=new路径();      }      @Override   保护空白>   公共空间onCreate () {//底边图片   ImageView ivTop=(ImageView) findViewByid (R.id.iv_top);      选项选择=new选项();//图片加载器,用于配置一些缩放比例,和像素单位   选择。inSampleSize=2;//制定加载器把原图片的宽高缩放到2/1的效果加载//获得外层图片,decodeResource方法默认获得的像素单位是RGB(红,绿,蓝),ARGB(α,红、绿、蓝)   位图topImage=BitmapFactory.decodeResources (R.drawable getResource ()。,选择);//创建一张空白图片,并且把图片想读单位指定为:ARGB   位图空白=Bitmap.createBitmap (topImage.getWidth (), topImage。获得,Config.ARGB_4444);//把上边的topImage画到空白图片上   帆布画布=新画布(空白);//把topImage画到空白图片上但是像素单位变成ARGB ()   画布。drawBitmap (topImage, 0, 0, null);   ivTop.setImageBitmap(空白);   }      类MyOnTouchListoner实现OnTouchListener {      @Override大众布尔ondraw(视图v MotionEvent事件){//是否是移动的事件   如果(event.getAction ()==MotionEvent.ACTION_MOVE) {//获得按下坐标   int x=(int) event.getX ();   int y=(int) event.getY ();      for (int i=x - 10;我& lt;x + 10;我+ +){   for (int j=y - 10;j & lt;y + 10;j + +) {//防止超出边界   如果(j祝辞=0,,blank.getHeight (),,我在=0,,我& lt;blank.getWidth ()) {   空白。setPixel (i, j, Color.TRANSPARENT);   }   }   }//修改后的图片设置给ImageView   ivTop.setImageBitmap(空白);   }      返回true;//真正的消耗掉这次触摸事件。假不消耗   }      }      之前      

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

Android自定义橡皮擦效果