左边是在AndroidPbeta上截取的屏幕截图,右边是在Android26上截取的屏幕截图。Xfermode在AndroidPbeta上的工作方式似乎存在不一致。下面是相应的代码。publicclassCropViewextendsView{privatePaintpaint;privatePathclipPath;privateintarcHeight;publicCropView(Contextcontext){super(context);init();}publicCropView(Contextcontext,AttributeSetattrs){super(context
我有一个自定义View,在onDraw()中,我正在尝试执行位图mask。我有一个填充整个View的squareBitmap(红色),还有一个用作mask的circleBitmap(蓝色)。我正在使用模式:PorterDuff.Mode.DST_IN。我期望的结果是一个红色实心圆圈。我明白了,但我也得到了黑色不透明背景。我不想要这个不透明的背景,而它应该是透明的。图1是我得到的结果,图2是我要找的结果。我的代码:(为了这个问题,我把所有东西都移到了onDraw()里面)protectedvoidonDraw(Canvascanvas){finalintwidth=canvas.getW
我是图形新手,Android文档中对Xfermode类有非常原始的解释。在网上搜索,我发现仅与以下术语有关:颜色混合、图像合成、关于传输模式算法的小解释、源颜色、目标颜色和op颜色(如果我没记错的话,这意味着不透明颜色)。但这并没有给我足够的理解。有没有人可以向我解释这些术语,或者最好给我一个链接,让我可以研究他们的解释? 最佳答案 我发现这个解释非常好:PorterDuffModesandAndroid 关于android-AndroidXfermode的解释,我们在StackOver