Как написать процент прогресса внутри индикатора прогресса
привет, у меня есть круговой индикатор выполнения, у которого есть большой палец, я бы хотел, чтобы процентный текст был написан внутри большого пальца.
Вот что я попробовал
Что я уже пробовал:
это обновляет значение прогресса (развертка большого пальца) на круглой полосе
private void updateProgress(int progress, bool fromUser) { if (progress == INVALID_PROGRESS_VALUE) { return; } progress = (progress > mMax) ? mMax : progress; progress = (progress < 0) ? 0 : progress; mProgress = progress; if (mOnSeekArcChangeListener != null) { mOnSeekArcChangeListener.onProgressChanged(this, progress, fromUser); } mProgressSweep = (float)progress / mMax * mSweepAngle; updateThumbPosition(); Invalidate(); }
это обновляет положение большого пальца.
private void updateThumbPosition() { int thumbAngle = (int)(mStartAngle + mProgressSweep + mRotation + 90); mThumbXPos = (int)(mArcRadius * Math.Cos(ToRadian(thumbAngle))); mThumbYPos = (int)(mArcRadius * Math.Sin(ToRadian(thumbAngle))); }
они прекрасно работают
вот в чем заключается моя проблема.
public void setProgressBar(int progress, Context context, SeekArc defkk) { Drawable d = ContextCompat.GetDrawable(context, Resource.Drawable.seek_arc_control_selector); Canvas c = new Canvas(); Bitmap bitmap = Bitmap.CreateBitmap(d.IntrinsicWidth, d.IntrinsicHeight, Bitmap.Config.Argb8888); c.SetBitmap(bitmap); d.SetBounds(0, 0, d.IntrinsicWidth, d.IntrinsicHeight); d.Draw(c); //Bitmap bmp = bitmap.Copy(Bitmap.Config.Argb8888, true); string text = progress.ToString() + "%"; Paint p = new Paint(); p.SetTypeface(Typeface.CreateFromAsset(context.Assets, "fonts/Brandon_bld.otf")); p.TextSize = 18; p.Color = Color.White; int thumbAngle = (int)(mStartAngle + mProgressSweep + mRotation + 90); int width = (int)p.MeasureText(text); int yPos = (int)((c.Height / 2) - ((p.Descent() + p.Ascent()) / 2)); c.DrawText(text, (bitmap.Width - width) / 2, yPos, p); defkk.SetThumb(new BitmapDrawable(Resources, bitmap)); }
мне нужно вставить код в функцию выше в updateProgress. так что по мере обновления прогресса он вставляет текст.