带有背景图像的ProgressBar



我想创建一个进度条ProgressBar屏幕截图,类似于给定的图像,其中的星形图像应该根据时间(每秒)减少。那么,请指导我怎么做?我正在使用倒计时计时器的处理程序timeString*我们从不同的类获得

  String timestring = getIntent().getStringExtra("ageintent");
        timereceived = Integer.parseInt(timestring);
        seekbar.setMax(timereceived);
        seekbar.setClickable(false);
        timereceived--;
        time.setText(String.valueOf(timereceived));
        back.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                onBackPressed();
            }
        });
        handler = new Handler();
        run = new Runnable() {
            @Override
            public void run() {
                int seconds = Integer.parseInt(timeseconds.getText().toString());
                int timechange = Integer.parseInt(time.getText().toString());
                seekbar.setProgress(seconds);
                seconds--;
                timeseconds.setText(String.valueOf(seconds));
                if (seconds == 0 && timechange == 0) {
                    Toast.makeText(Naughty_Step.this, "Your punishment is completed", Toast.LENGTH_SHORT).show();
                    soundplayer.start();
                    timereceived--;
                } else if (seconds == 0) {
                    timeseconds.setText("59");
                    timechange--;
                    seekbar.setProgress(seconds);
                    time.setText(String.valueOf(timechange));
//                    int min= Integer.parseInt(time.getText().toString());
//                    seekbar.setProgress(min);
                    handler.postDelayed(this, 1000);
                } else {
                    handler.postDelayed(this, 1000);
                }
            }
        };
        handler.postDelayed(run, 1000);

    }

尝试下面的-

    SeekBar seekBar1 = (SeekBar)findViewById(R.id.seekBar1);
    drw = getResources().getDrawable(R.drawable.ic_launcher);
    seekBar1.setOnSeekBarChangeListener(new yourListener());
private class yourListener implements SeekBar.OnSeekBarChangeListener {
        public void onProgressChanged(SeekBar seekBar, int progress,
                boolean fromUser) {

                    iSize = 100 - progress;

            tv.setText(String.valueOf(new Integer(progress)));   
            drw = resize(drw);
            seekBar.setThumb(drw);
        }
        public void onStartTrackingTouch(SeekBar seekBar) {}
        public void onStopTrackingTouch(SeekBar seekBar) {}
    }

    //Reduce size of seekbar 
    private Drawable resize(Drawable image) {
        Bitmap b = ((BitmapDrawable)image).getBitmap();
        Bitmap bitmapResized = Bitmap.createScaledBitmap(b, iSize, iSize, false);
        return new BitmapDrawable(getResources(), bitmapResized);
    }

将其添加为活动或片段的内部类need-progressbar reduce。

class CounterClass extends CountDownTimer {
int totalDuration;
public CounterClass(long millisInFeature, long countDownInterval) {
    // TODO Auto-generated constructor stub
    super(millisInFeature , countDownInterval);     
    this.totalDuration =millisInFeature     
}
@Override
public void onTick(long millisUntilFinished) {
    // TODO Auto-generated method stub
     int progress =((millisUntilFinished * 100 / totalDuration))
     progressbar.setProgress(progress);
}
@Override
public void onFinish() {
    // TODO Auto-generated method stub
}

oncreate()或事件启动

(new CounterClass(30000,1000)).start();

最新更新