@Override public int getOpacity() { final Paint bPaint = mBackgroundPaint; final Paint fPaint = mForegroundPaint; if (bPaint.getXfermode() == null && fPaint.getXfermode() == null) { final int alpha = Color.alpha(fPaint.getColor()); if (alpha == 0) { return PixelFormat.TRANSPARENT; } if (alpha == 255) { return PixelFormat.OPAQUE; } } // not sure, so be safe return PixelFormat.TRANSLUCENT; }
@Override public int getOpacity() { final Paint circlePaint = mCirclePaint; final Paint ringPaint = mRingPaint; if (circlePaint.getXfermode() == null && ringPaint.getXfermode() == null) { final int alpha = Color.alpha(getColor()); if (alpha == 0) { return PixelFormat.TRANSPARENT; } if (alpha == 255) { return PixelFormat.OPAQUE; } } // not sure, so be safe return PixelFormat.TRANSLUCENT; }
@Override public int getOpacity() { final Paint p = mPaint; if (p.getXfermode() == null) { final int alpha = p.getAlpha(); if (alpha == 0) { return PixelFormat.TRANSPARENT; } if (alpha == 255) { return PixelFormat.OPAQUE; } } // not sure, so be safe return PixelFormat.TRANSLUCENT; }
@Override protected void onDraw(Canvas canvas) { Drawable myDrawable = getDrawable(); if (myDrawable!=null && myDrawable instanceof BitmapDrawable && mCornerRadius > 0) { rectF.set(myDrawable.getBounds()); int prevCount = canvas.saveLayer(rectF, null, Canvas.ALL_SAVE_FLAG); getImageMatrix().mapRect(rectF); Paint paint = ((BitmapDrawable) myDrawable).getPaint(); paint.setAntiAlias(true); paint.setColor(DEFAULT_COLOR); Xfermode prevMode = paint.getXfermode(); canvas.drawARGB(DEFAULT_RGB, DEFAULT_RGB, DEFAULT_RGB, DEFAULT_RGB); canvas.drawRoundRect(rectF, mCornerRadius, mCornerRadius, paint); paint.setXfermode(porterDuffXfermode); super.onDraw(canvas); paint.setXfermode(prevMode); canvas.restoreToCount(prevCount); } else { super.onDraw(canvas); } }
@Override public void draw(Canvas canvas) { final Paint paint = mPaint; final int prevAlpha = paint.getAlpha(); paint.setAlpha(Ui.modulateAlpha(prevAlpha, getAlpha())); // only draw shape if it may affect output if (paint.getAlpha() != 0 || paint.getXfermode() != null /*|| paint.hasShadowLayer()*/) { final boolean clearColorFilter; if (mTintFilter != null && paint.getColorFilter() == null) { paint.setColorFilter(mTintFilter); clearColorFilter = true; } else { clearColorFilter = false; } // call draw draw(canvas, mPaint); if (clearColorFilter) { paint.setColorFilter(null); } } // restore paint.setAlpha(prevAlpha); }
@Override public int getOpacity() { if (mBackgroundPaint.getXfermode() == null && mForegroundPaint.getXfermode() == null) { final int alpha = Color.alpha(mForegroundPaint.getColor()); if (alpha == 0) { return PixelFormat.TRANSPARENT; } if (alpha == 255) { return PixelFormat.OPAQUE; } } // not sure, so be safe return PixelFormat.TRANSLUCENT; }
@Override public int getOpacity() { if (mBackgroundPaint.getXfermode() == null && mForegroundPaint.getXfermode() == null) { final int alpha = Color.alpha(mForegroundPaint.getColor()); if (alpha == 0) { return PixelFormat.TRANSPARENT; } if (alpha == 255) { return PixelFormat.OPAQUE; } } // not sure, so be safe return PixelFormat.TRANSLUCENT; }
final RectF rectF = new RectF(fLeft, fTop, fRight, fBottom); Xfermode BeforEPaintXferMode = currPaint.getXfermode();
if (mXfermode == null) mXfermode = new PorterDuffXfermode(PorterDuff.Mode.CLEAR); final Xfermode old = mPaint.getXfermode(); mPaint.setXfermode(mXfermode); mPaint.setColor(Color.BLACK);
canvas.drawRoundRect(rectF, mCornerRadius, mCornerRadius, paint); Xfermode oldMode = paint.getXfermode();
if (mXfermode == null) mXfermode = new PorterDuffXfermode(PorterDuff.Mode.CLEAR); final Xfermode old = mPaint.getXfermode(); mPaint.setXfermode(mXfermode); mPaint.setColor(Color.BLACK);
data.put("TextSkewX", paint.getTextSkewX()); data.put("Typeface", String.valueOf(paint.getTypeface())); appendClassName("XFermode", paint.getXfermode(), data); data.put("IsAntiAlias", paint.isAntiAlias()); data.put("IsDither", paint.isDither());