Android 用倒计时圈出进度条
我有以下两个程序,可以工作,但需要将它们结合起来以实现我想要的。请参见下图 我有以下问题Android 用倒计时圈出进度条,android,progress-bar,countdowntimer,Android,Progress Bar,Countdowntimer,我有以下两个程序,可以工作,但需要将它们结合起来以实现我想要的。请参见下图 我有以下问题 进度条不顺畅 倒计时时间是不断上升和下降,而不是正确的倒计时 public class MainActivity extends ActionBarActivity { TextView tv2; ProgressBar pBar2; int pStatus = 0; private Handler handler = new Handler(); @Override protected void on
public class MainActivity extends ActionBarActivity {
TextView tv2;
ProgressBar pBar2;
int pStatus = 0;
private Handler handler = new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv2 = (TextView) findViewById(R.id.textView2);
pBar2 = (ProgressBar) findViewById(R.id.progressBar2);
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
while (pStatus < 100) {
pStatus += 1;
handler.post(new Runnable() {
@Override
public void run() {
new CountDownTimer(10000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
pBar2.setProgress(pStatus);
tv2.setText("" + millisUntilFinished / 1000);
}
@Override
public void onFinish() {
tv2.setText("Go!");
}
}.start();
}
});
try {
// Sleep for 200 milliseconds.
// Just to display the progress slowly
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}).start();
}
公共类MainActivity扩展了ActionBarActivity{
文本视图tv2;
ProgressBar-pBar2;
int pStatus=0;
私有处理程序=新处理程序();
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv2=(TextView)findViewById(R.id.textView2);
pBar2=(ProgressBar)findViewById(R.id.progressBar2);
新线程(newrunnable()){
@凌驾
公开募捐{
//TODO自动生成的方法存根
而(pStatus<100){
pStatus+=1;
handler.post(新的Runnable(){
@凌驾
公开募捐{
新的倒计时(10000,1000){
@凌驾
公共void onTick(长毫秒未完成){
pBar2.setProgress(pStatus);
tv2.setText(“+millisuntiltfinished/1000”);
}
@凌驾
公共无效onFinish(){
tv2.setText(“开始!”);
}
}.start();
}
});
试一试{
//睡眠200毫秒。
//只是为了慢慢地显示进度
睡眠(200);
}捕捉(中断异常e){
e、 printStackTrace();
}
}
}
}).start();
}
我曾经在开发足球应用程序时遇到过类似的问题,最终我编写了自己的视图,覆盖了绘图和画圈(圆弧),并编写了文本 采用这种方法可以更容易地控制视图,而不是滥用ProgressBar来画圆圈,这甚至使视图更轻量级 在右边你可以看到时钟和画游戏状态的圆圈 因此,只需使用自定义视图,覆盖onDraw并操纵画布即可 开始学习这一点的好方法是: 检查这个。