android 清空屏幕以及ProterDuffXfermode.Mode.clear
ProterDuff.Mode.clear網上基本翻譯為 所繪制不會提交到畫布上
其實ProterDuff.Mode.clear個人理解是清屏幕的意思
來個例子
????????????????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));
繪制一個和屏幕相同大小的矩形 顏色為紅色
那么我這時候想把canvas這個畫布清屏應該怎么操作呢?
方法一:
直接去掉注釋
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));下次繪制的東西在最上層