下面列出了android.graphics.Paint#getColorFilter ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
public void draw(Canvas canvas) {
final Paint paint = mPaint;
final boolean clearColorFilter;
if (mTintFilter != null && paint.getColorFilter() == null) {
paint.setColorFilter(mTintFilter);
clearColorFilter = true;
} else {
clearColorFilter = false;
}
canvas.drawRoundRect(mBoundsF, mRadius, mRadius, paint);
if (clearColorFilter) {
paint.setColorFilter(null);
}
}
@Override
public void draw(Canvas canvas) {
final Paint paint = mPaint;
final boolean clearColorFilter;
if (mTintFilter != null && paint.getColorFilter() == null) {
paint.setColorFilter(mTintFilter);
clearColorFilter = true;
} else {
clearColorFilter = false;
}
canvas.drawRoundRect(mBoundsF, mRadius, mRadius, paint);
if (clearColorFilter) {
paint.setColorFilter(null);
}
}
@Override
public void setColorFilter(ColorFilter cf) {
boolean needRefresh = false;
final Paint bPaint = mBackgroundPaint;
if (bPaint.getColorFilter() != cf) {
bPaint.setColorFilter(cf);
needRefresh = true;
}
final Paint fPaint = mForegroundPaint;
if (fPaint.getColorFilter() != cf) {
fPaint.setColorFilter(cf);
needRefresh = true;
}
if (needRefresh)
invalidateSelf();
}
@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 void setColorFilter(ColorFilter cf) {
final Paint circlePaint = mCirclePaint;
final Paint ringPaint = mRingPaint;
boolean needRefresh = false;
if (circlePaint != null && circlePaint.getColorFilter() != cf) {
circlePaint.setColorFilter(cf);
needRefresh = true;
}
if (ringPaint != null && ringPaint.getColorFilter() != cf) {
ringPaint.setColorFilter(cf);
needRefresh = true;
}
if (needRefresh)
invalidateSelf();
}
@Override
public void draw(final Canvas canvas) {
final Paint paint = getPaint();
if (paint.getColorFilter() == null) {
paint.setColorFilter(new LightingColorFilter(tint, 0));
paint.setAlpha(alpha);
}
super.draw(canvas);
}
@Override
public void draw(final Canvas canvas) {
final Paint paint = getPaint();
if (paint.getColorFilter() == null) {
paint.setColorFilter(new LightingColorFilter(tint, 0));
paint.setAlpha(alpha);
}
super.draw(canvas);
}
@Override
public void setColorFilter(ColorFilter cf) {
final Paint paint = mPaint;
if (paint != null && paint.getColorFilter() != cf) {
paint.setColorFilter(cf);
invalidateSelf();
}
}