如何在进度条上显示进度号?

时间:2019-07-02 17:00:55

标签: java android xml layout

我想使进度条在进度条下方居中显示。目前没有。 环顾四周,但没有找到一个对话框就找不到任何方法(我只是用它来显示满分100分)

这是我的代码部分的样子:

ProgressBar progressBar = (ProgressBar) findViewById(R.id.ecoProgress);
        progressBar.setMax(100);
        progressBar.setProgress(scoreg);
        progressBar.setPadding(50,0,50,0);


        if (scoreg < 34)
            progressBar.getProgressDrawable().setColorFilter(Color.parseColor("#C43F3F"), android.graphics.PorterDuff.Mode.SRC_IN);
        else if (scoreg < 67)
            progressBar.getProgressDrawable().setColorFilter(Color.parseColor("#DB8B21"), android.graphics.PorterDuff.Mode.SRC_IN);
        else
            progressBar.getProgressDrawable().setColorFilter(Color.parseColor("#34DB21"), android.graphics.PorterDuff.Mode.SRC_IN);

这是布局xml:

<ProgressBar
                            android:layout_width="match_parent"
                            android:layout_height="50dp"
                            style="@android:style/Widget.Holo.ProgressBar.Horizontal"
                            android:id="@+id/ecoProgress"
                            />

1 个答案:

答案 0 :(得分:0)

出于您的目的,我认为最好使用Seekbar。您可以这样做:

SeekBar seekBar = findViewById(R.id.seekbar);
final TextView textView = findViewById(R.id.textview);

seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
    @Override
    public void onProgressChanged(SeekBar seekBar, int progress, boolean b) {
        textView.setText(String.valueOf(progress));
    }
    @Override
    public void onStartTrackingTouch(SeekBar seekBar) {
    }
    @Override
    public void onStopTrackingTouch(SeekBar seekBar) {

    }
});

xml布局:

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">

    <TextView
        android:id="@+id/textview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="0" />

    <SeekBar
        android:id="@+id/seekbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:max="100" />
</LinearLayout>