当我在edittext中输入数字并单击按钮时,如何更改圆形搜索栏中的进度?
下面是我正在尝试做的快照
http://devadvance.com/circularseekbar/
我为另一个应用程序开发了一个全新的 CircularSeekBar,并决定将其开源。RaghavSood 的一个功能不错,但不可定制,并且没有正确工作的 setProgress/getProgress 方法。
让我知道这是否有帮助。
编辑:在布局上使用 TextView 时的回调:
public class CircleSeekBarListener implements OnCircularSeekBarChangeListener {
@Override
public void onProgressChanged(CircularSeekBar seekBar, int progress, boolean fromUser) {
// Put your code here
TextView text = (TextView)findViewById(R.id.TextView1);
text.setText("" + progress);
}
}
我得到了我的问题的答案。如果您想在上面的布局中显示像我这样的圆形搜索栏,并希望发送来自服务器的值,请使用以下代码:
https://github.com/RaghavSood/AndroidCircularSeekBar
根据您在 CircularSeekBar 类中的要求更改其布局
如果您想以编程方式为其进度发送价值。然后,将 setProgress() 替换为以下方法:
public void setProgress(int progress) //this is an Android function
{
if (this.progress != progress)
{
this.progress = progress;
if (!CALLED_FROM_ANGLE)
{
int newPercent =this.progress;
int newAngle = (newPercent * 360)/100;
this.setAngle(newAngle);
this.setProgressPercent(newPercent);
}
mListener.onProgressChange(this, this.getProgress());
CALLED_FROM_ANGLE = false;
}
}
现在,在您使用此 Circular Seek bar 的活动中,使用 SetProgress() 方法设置其进度。像这样:-
com.exp.CustomControls.CircularSeekBar dynamicSeekBar=(com.exp.CustomControls.CircularSeekBar)findViewById(R.id.img_score_rovr);
dynamicSeekBar.setMaxProgress(100);
dynamicSeekBar.setProgress(progress_score); // Here, you can send any value
dynamicSeekBar.invalidate();
一切顺利....
如果您有任何问题,请告诉我.......我有这方面的专业知识
您可以尝试这段简单的代码来创建循环进度条。
private void circularImageBar(ImageView iv2, int i) {
Bitmap b = Bitmap.createBitmap(300, 300,Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(b);
Paint paint = new Paint();
paint.setColor(Color.parseColor("#c4c4c4"));
paint.setStrokeWidth(10);
paint.setStyle(Paint.Style.STROKE);
canvas.drawCircle(150, 150, 140, paint);
paint.setColor(Color.parseColor("#FFDB4C"));
paint.setStrokeWidth(10);
paint.setStyle(Paint.Style.FILL);
final RectF oval = new RectF();
paint.setStyle(Paint.Style.STROKE);
oval.set(10,10,290,290);
canvas.drawArc(oval, 270, ((i*360)/100), false, paint);
paint.setStrokeWidth(0);
paint.setTextAlign(Align.CENTER);
paint.setColor(Color.parseColor("#8E8E93"));
paint.setTextSize(140);
canvas.drawText(""+i, 150, 150+(paint.getTextSize()/3), paint);
iv2.setImageBitmap(b);
}
要更改您ProgressBar
必须调用实例的进度setProgress(int)
ProgressBar