One option is not to make it a traditional progress bar. In one of my personal applications, I need a display that looks like a circular progress bar that has segments of different colors.
Maybe I'll start by drawing a filled rectangle from 0 to 14.9 GB in color for music from 939 MB to 14.9 GB in color for video, from 3.52 GB to 14.9 GB in color for images, etc. ..
Then you can simply draw rounded ends in the background color as a mask.
That would be pretty fast, since you only draw graphic primitives and you can expand it as much as you want.
The only weak drawback will be that you have to implement most of the logic yourself, but this is a small price to pay, in my opinion.
Rivierakid
source share