2

当我在edittext中输入数字并单击按钮时,如何更改圆形搜索栏中的进度?

下面是我正在尝试做的快照

在此处输入图像描述

4

4 回答 4

2

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);
    }
}
于 2013-09-30T12:57:39.680 回答
1

我得到了我的问题的答案。如果您想在上面的布局中显示像我这样的圆形搜索栏,并希望发送来自服务器的值,请使用以下代码:

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();

一切顺利....

如果您有任何问题,请告诉我.......我有这方面的专业知识

于 2013-05-29T10:01:47.700 回答
0

您可以尝试这段简单的代码来创建循环进度条。

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);
}
于 2014-10-30T12:55:56.823 回答
0

要更改您ProgressBar必须调用实例的进度setProgress(int)ProgressBar

于 2013-05-24T07:42:28.133 回答