English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
المشروع يتطلب تنفيذ دائرة تقدم الخطوات المعدة، عند عدم الوصول إلى الهدف المحدد، يتم رسم دائرة معينة (معدل الخطوات المحققة / عدد الخطوات المستهدفة) * 360 درجة. عند تجاوز عدد الخطوات المحققة عدد الخطوات المستهدفة، يتم رسم دائرة كاملة 360 درجة.
شكل النتيجة:
تنفيذ الكود:
ضبط عدد الخطوات المنجزة والهدف:
public void setStep(int stepDone, int stepGoal) { this.stepDone = stepDone; this.stepGoal = stepGoal; int progess = (stepDone * 100) / stepGoal; if (progess > 100) { setProgress(100); } else { setProgress(progess); } }
ضبط التقدم:
public void setProgress(int progress) { this.mProgress = progress; this.invalidate(); }
ضبط خصائص الفرشاة:
mPaint.setAntiAlias(true); mPaint.setColor(Color.rgb(0xe9, 0xe9, 0xe9)); canvas.drawColor(Color.TRANSPARENT); mPaint.setStrokeWidth(LINE_WIDTH_BG); mPaint.setStyle(Paint.Style.STROKE);
رسم الحلقة والخلفية:
canvas.drawArc(mRectF, -90, 360, false, mPaint); mPaint.setColor(Color.rgb(0xf8, 0x60, 0x30)); canvas.drawArc(mRectF, -90, ((float) mProgress / mMaxProgress) * 360, false, mPaint);
رسم عدد الخطوات و وحدة:
mPaint.setStrokeWidth(TEXT_WIDTH); String text = stepDone + context.getString(R.string.step_unit); int textHeight = height / 4; mPaint.setTextSize(textHeight); int textWidth = (int) mPaint.measureText(text, 0, text.length()); mPaint.setStyle(Paint.Style.FILL); canvas.drawText(text, width / 2 - textWidth / 2, height / 2 + textHeight / 4, mPaint);
رسم عدد الخطوات المستهدفة:
String textGoal = "/" + stepGoal; int textGoalHeight = height / 8; mPaint.setTextSize(textGoalHeight); int textGoalWidth = (int) mPaint.measureText(textGoal, 0, textGoal.length()); mPaint.setStyle(Paint.Style.FILL); canvas.drawText(textGoal, width / 2 - textGoalWidth / 2, height / 2 + textHeight / 2 + textGoalHeight, mPaint);
هذا هو نهاية محتوى هذا المقال، نأمل أن يكون قد ساعدكم في التعلم، ونأمل أن تدعموا كتالوج呐喊 بشكل أكبر.
بيان: محتوى هذا المقال تم جمعه من الإنترنت، يحق لصاحب الحقوق أن يطالب بملكه، تم جمع المحتوى من قبل المستخدمين على الإنترنت ويتم تحميله بشكل مستقل، هذا الموقع لا يملك حقوق الملكية، لم يتم تعديل المحتوى بشكل إنساني ولا يتحمل المسؤولية القانونية المتعلقة بذلك. إذا كنت قد وجدت محتوى يشتبه في انتهاك حقوق النسخ، فنرجو منك إرسال بريد إلكتروني إلى: notice#oldtoolbag.com (عند إرسال البريد الإلكتروني، يرجى استبدال # بـ @) للإبلاغ، وقدم الدليل المتعلق، وسيتم حذف المحتوى المزعوم بشكل فوري إذا تم التحقق من صحة الشكوى.