@Override
public float render(final Canvas c, final int y, final int x, final float additionalWidth, final float left,
final float right, final int nightmode) {
if (left < x + width && x < right) {
final Bitmap bmp = data.getBitmap();
paint.setXfermode(null);
if (nightmode != 0) {
paint.setXfermode(new PixelXorXfermode(-1));
c.drawRect(x, y - height, (int) (x + width), y, paint);
}
if (bmp != null) {
c.drawBitmap(bmp, null, new Rect(x, y - height, (int) (x + width), y), paint);
bmp.recycle();
} else {
c.drawRect(new Rect(x, y - height, (int) (x + width), y), paint);
}
}
return width;
}
java类android.graphics.PixelXorXfermode的实例源码
Image.java 文件源码
项目:appcan-plugin-pdfreader-android
阅读 26
收藏 0
点赞 0
评论 0
AndroidGraphics2D.java 文件源码
项目:AndroidPrefuse
阅读 29
收藏 0
点赞 0
评论 0
@Override
public void setXORMode(Color color)
{
if (currentPaint == null)
{
currentPaint = new Paint();
}
currentPaint.setXfermode(new PixelXorXfermode(color.getRGB()));
}
TerminalView.java 文件源码
项目:connectbot
阅读 25
收藏 0
点赞 0
评论 0
public TerminalView(Context context, TerminalBridge bridge) {
super(context);
this.context = context;
this.bridge = bridge;
paint = new Paint();
setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
setFocusable(true);
setFocusableInTouchMode(true);
cursorPaint = new Paint();
cursorPaint.setColor(bridge.color[bridge.defaultFg]);
cursorPaint.setXfermode(new PixelXorXfermode(bridge.color[bridge.defaultBg]));
cursorPaint.setAntiAlias(true);
cursorStrokePaint = new Paint(cursorPaint);
cursorStrokePaint.setStrokeWidth(0.1f);
cursorStrokePaint.setStyle(Paint.Style.STROKE);
/*
* Set up our cursor indicators on a 1x1 Path object which we can later
* transform to our character width and height
*/
// TODO make this into a resource somehow
shiftCursor = new Path();
shiftCursor.lineTo(0.5f, 0.33f);
shiftCursor.lineTo(1.0f, 0.0f);
altCursor = new Path();
altCursor.moveTo(0.0f, 1.0f);
altCursor.lineTo(0.5f, 0.66f);
altCursor.lineTo(1.0f, 1.0f);
ctrlCursor = new Path();
ctrlCursor.moveTo(0.0f, 0.25f);
ctrlCursor.lineTo(1.0f, 0.5f);
ctrlCursor.lineTo(0.0f, 0.75f);
// For creating the transform when the terminal resizes
tempSrc = new RectF();
tempSrc.set(0.0f, 0.0f, 1.0f, 1.0f);
tempDst = new RectF();
scaleMatrix = new Matrix();
bridge.addFontSizeChangedListener(this);
// connect our view up to the bridge
setOnKeyListener(bridge.getKeyHandler());
mAccessibilityBuffer = new StringBuffer();
// Enable accessibility features if a screen reader is active.
new AccessibilityStateTester().execute((Void) null);
}