如何在Android中更改循环搜索栏的进度?

时间:2013-05-24 07:39:28

标签: android seekbar

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

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

enter image description here

4 个答案:

答案 0 :(得分: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; 
        } 
    } 

现在,在您使用此循环搜索栏的活动中,使用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();

一切顺利......

如果您遇到任何问题,请告诉我.......我有专业知识

答案 1 :(得分:1)

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

答案 2 :(得分:0)

更改您ProgressBar实例上必须致电setProgress(int)的{​​{1}}的进度

答案 3 :(得分: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);
}