ArrayListцвет перекрытия при рисовании множественного пути
ArrayList<Pair<Path, Float>> foregroundPaths = new ArrayList<Pair<Path, Float>>();
Краска initilization
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
почему вы не заметили внезапно – Raghunandan
даже с этим mBitmap = Bitmap.createBitmap (w, h, Bitmap.Config.ARGB_8888); mCanvas = новый холст (mBitmap); его та же история. доя сопли решает. Поэтому я думаю, что мой ответ в этом контексте прав. – Raghunandan