可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I have a circular progress-bar and it works fine.But Background is not appearing, even though i have given shape for "background" in the xml drawable file and also progress starts from the right side of the circle (as shown in the figure). I want it to make it from the top.
Here is my code:
progressbar.xml
I use following code to set progress:
ProgressBar pb = (ProgressBar)FindViewById (Resource.Id.progressBarToday); _progressBar.Progress = _progressCount;
Why the background is not appearing? and How can i make the progress start from the top?
Anyone please help, Thanks.
回答1:
You need to add the following attribute to the background item:
android:useLevel="false"
Like so:
回答2:
To start from the top, you can use "rotate
回答3:
回答4:
Yes. I am too late but this may help other. This code will return a bitmap image and can be used in a ImageView or ImageButton .
private Bitmap progressBar(int progress) { Bitmap bitmap = Bitmap.createBitmap(300, 300, Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bitmap); Paint paint = new Paint(); paint.setColor(Color.parseColor("#FF0000")); paint.setStrokeWidth(20); paint.setAntiAlias(true); paint.setStyle(Paint.Style.FILL_AND_STROKE); canvas.drawCircle(150, 150, 140, paint); paint.setColor(Color.parseColor("#01aa01")); paint.setStrokeWidth(16); paint.setStyle(Paint.Style.STROKE); final RectF oval = new RectF(); paint.setStyle(Paint.Style.FILL); oval.set(10, 10, 290, 290); canvas.drawArc(oval, 270, (progress * 360) / 100, true, paint); paint.setStrokeWidth(1); paint.setTextSize(100); paint.setTextAlign(Align.CENTER); paint.setColor(Color.parseColor("#ffffff")); canvas.drawText("" + progress, 150, 150 + (paint.getTextSize() / 3), paint); return bitmap; }