android 清空屏幕以及ProterDuffXfermode.Mode.clear
ProterDuff.Mode.clear網(wǎng)上基本翻譯為 所繪制不會(huì)提交到畫布上
其實(shí)ProterDuff.Mode.clear個(gè)人理解是清屏幕的意思
來個(gè)例子
????????????????image=(ImageView)?this.findViewById(R.id.img); WindowManager?manager=?(WindowManager)?this.getSystemService(Context.WINDOW_SERVICE); DisplayMetrics?dm=new?DisplayMetrics(); manager.getDefaultDisplay().getMetrics(dm); Bitmap?bitmap?=?Bitmap.createBitmap(dm.widthPixels,?dm.heightPixels,?Config.ARGB_8888); Canvas?canvas=new?Canvas(bitmap); Paint?mPatint=new?Paint(Paint.ANTI_ALIAS_FLAG); mPatint.setColor(Color.RED); canvas.drawRect(new?Rect(0,?0,?dm.widthPixels,?dm.heightPixels),?mPatint); //canvas.drawColor(Color.TRANSPARENT,Mode.CLEAR); image.setBackground(new?BitmapDrawable(this.getResources(),bitmap));
繪制一個(gè)和屏幕相同大小的矩形 顏色為紅色
那么我這時(shí)候想把canvas這個(gè)畫布清屏應(yīng)該怎么操作呢?
方法一:
直接去掉注釋
canvas.drawColor(Color.TRANSPARENT,Mode.CLEAR);
意思為把畫布清空
方法二:
還有另外一種解決辦法:
????????????????mCanvas.drawColor(Color.TRANSPARENT); mPaint.setXfermode(new?PorterDuffXfermode(Mode.CLEAR));清屏 mCanvas.drawPaint(mPaint);作用于畫布上 mPaint.setXfermode(new?PorterDuffXfermode(Mode.SRC));下次繪制的東西在最上層