的ArrayList颜色重叠
ArrayList<Pair<Path, Float>> foregroundPaths = new ArrayList<Pair<Path, Float>>();
油漆动初始化
mPaint = new Paint();
mPaint.setAntiAlias(false);
mPaint.setDither(true);
mPaint.setColor(0x0FFF0000);
mPaint.setStyle(Paint.Style.STROKE);
mPaint.setStrokeJoin(Paint.Join.BEVEL);
mPaint.setStrokeCap(Paint.Cap.ROUND);
mPaint.setStrokeWidth(Math.abs(ImageViewTouch.brushSize
/getScale()));
mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_ATOP));
mPaint.setAlpha(0x80);
的OnDraw
canvas.save();
displayRectF = new RectF();
canvas.concat(getDisplayMatrix());
rect = canvas.getClipBounds();
displayRectF.set(rect);
for (Pair<Path, Float> p : foregroundPaths) {
mPaint.setStrokeWidth(p.second);
canvas.drawPath(p.first, mPaint);
}
canvas.restore();
以上代码可以使用手指在画布上绘制。但问题是当多条路径交叉重叠时。我附上了我的应用快照的链接。 重叠在绿色矩形内。我设置Xfermode来绘制,但没有按照我的预期工作。
请帮我,建议我,我该怎么做才能解决这个问题。 任何建议将不胜感激。 感谢
试过以下?对你起作用吗? – Raghunandan 2013-05-13 13:48:52
为什么即使使用这个mBitmap = Bitmap.createBitmap(w,h,Bitmap.Config.ARGB_8888),突然间也不接受 – Raghunandan 2013-05-16 13:11:51
; mCanvas = new Canvas(mBitmap);它的故事同样如此。 doe snot解决。所以我想我在这方面的答案是正确的。 – Raghunandan 2013-05-16 13:16:29