PDA

View Full Version : رنگ کردن درون شکل دلخواه



afi_program
یک شنبه 21 مرداد 1397, 12:39 عصر
سلام.
من چندضلعی با drawpath رسم کردم. میشه خطوط دور شکل با رنگ داخل شکل یکی نباشه؟


ممنون

farhad_shiri_ex
دوشنبه 22 مرداد 1397, 11:48 صبح
سلام.
من چندضلعی با drawpath رسم کردم. میشه خطوط دور شکل با رنگ داخل شکل یکی نباشه؟


ممنون



private final RectF mBorderRect = new RectF();
private final RectF mDrawableRect = new RectF();
private final Paint mFillPaint = new Paint();
mFillPaint.setColor(fillColor); // set custom color
mFillPaint.setStyle(Paint.Style.FILL);
mFillPaint.setAntiAlias(true);

private float mDrawableRadius;
mDrawableRadius = Math.min(mDrawableRect.height() / 2.0f, mDrawableRect.width() / 2.0f);
mBorderRect.set(calculateBounds());
mDrawableRect.set(mBorderRect);

@Override
protected void onDraw(Canvas canvas) {
if (mDisableCircularTransformation) {
super.onDraw(canvas);
return;
}

canvas.drawCircle(mDrawableRect.centerX(), mDrawableRect.centerY(), mDrawableRadius, mFillPaint);
}

private RectF calculateBounds() {
int availableWidth = getWidth() - getPaddingLeft() - getPaddingRight();
int availableHeight = getHeight() - getPaddingTop() - getPaddingBottom();

int sideLength = Math.min(availableWidth, availableHeight);

float left = getPaddingLeft() + (availableWidth - sideLength) / 2f;
float top = getPaddingTop() + (availableHeight - sideLength) / 2f;

return new RectF(left, top, left + sideLength, top + sideLength);
}

afi_program
سه شنبه 13 شهریور 1397, 16:10 عصر
در ادامه سوال قبل:
یک سری شکل رسم میکنم و بعد با استفاده از Path و canvas.clippath هر کدام از شکلها بعد از زدن یک دکمه رنگ میشوند. حالا میخوام که همونطوری که اینکار مرحله به مرحله روبه جلو انجام میشه برعکسش هم انجام بشه یعنی با زدن یک دکمه هربار یکی از اون شکلهای رنگ شده (آخرین) رنگش پاک بشه.
ممنون میشم راهنمایی کنید

موفق باشید