NovelReader icon indicating copy to clipboard operation
NovelReader copied to clipboard

Region.Op.XOR 在9.0不能使用,动画会失效

Open Oyama-Oyama opened this issue 5 years ago • 8 comments

canvas.clipPath(path, Region.Op.XOR); XOR在9.0被删除了,有替代方法吗实现动画吗

Oyama-Oyama avatar Sep 30 '19 03:09 Oyama-Oyama

同问

Android-xiaole avatar Oct 11 '19 02:10 Android-xiaole

我改成调用其他的方法没问题了: if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { canvas.clipOutPath(mPath0); } else { canvas.clipPath(mPath0, Region.Op.XOR);// REPLACE、UNION 等类型 }

jackom avatar Oct 25 '19 06:10 jackom

我改成调用其他的方法没问题了: if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { canvas.clipOutPath(mPath0); } else { canvas.clipPath(mPath0, Region.Op.XOR);// REPLACE、UNION 等类型 }

有没有发现这样改了以后 翻页的时候被翻的页面变成了空白的,我遇到了 这种解决了吗

HandSomeMaster avatar Nov 26 '19 04:11 HandSomeMaster

我改成调用其他的方法没问题了: if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { canvas.clipOutPath(mPath0); } else { canvas.clipPath(mPath0, Region.Op.XOR);// REPLACE、UNION 等类型 }

有没有发现这样改了以后 翻页的时候被翻的页面变成了空白的,我遇到了 这种解决了吗

暂时没发现这种情况。。

jackom avatar Nov 26 '19 08:11 jackom

我改成调用其他的方法没问题了: if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { canvas.clipOutPath(mPath0); } else { canvas.clipPath(mPath0, Region.Op.XOR);// REPLACE、UNION 等类型 }

有没有发现这样改了以后 翻页的时候被翻的页面变成了空白的,我遇到了 这种解决了吗

暂时没发现这种情况。。

老哥有联系方式吗 我想问问你

HandSomeMaster avatar Dec 11 '19 07:12 HandSomeMaster

我改成调用其他的方法没问题了: if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { canvas.clipOutPath(mPath0); } else { canvas.clipPath(mPath0, Region.Op.XOR);// REPLACE、UNION 等类型 }

有没有发现这样改了以后 翻页的时候被翻的页面变成了空白的,我遇到了 这种解决了吗

暂时没发现这种情况。。

老哥有联系方式吗 我想问问你

因为现在的开源库一直没有更新,我现在主要是参考 https://github.com/390057892/reader 这个项目来搞了。会不会跟没有开启硬件加速有关?具体我也不是很清楚(手动狗头)

jackom avatar Dec 13 '19 10:12 jackom

尝试一下

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.P){
            Path mPathXOR = new Path();
            mPathXOR.moveTo(0,0);
            mPathXOR.lineTo(getWidth(),0);
            mPathXOR.lineTo(getWidth(),getHeight());
            mPathXOR.lineTo(0,getHeight());
            mPathXOR.close();
            //以上根据实际的Canvas或View的大小,画出相同大小的Path即可
            mPathXOR.op(mPath0, Path.Op.XOR);
            canvas.clipPath(mPathXOR);
        }else {
            canvas.clipPath(mPath0, Region.Op.XOR);
        }

zizikoth avatar Jan 13 '20 05:01 zizikoth

我的项目里面将targetsdk从28改为27就没问题了,相当于绕过了api检查的机制

Android-xiaole avatar Jan 19 '20 01:01 Android-xiaole