2016-06-09 4 views
-1

내 SeekBar를 천천히 증가 시키려면 단추를 사용하려고합니다. & & || 특정 int 값으로 감소합니다 (아마도 double로만 수행 할 수 있습니까?). seekbar의 진행이 0에서 시작한다고 가정 해 봅시다. 약 5 초 동안 50으로 증가하려고합니다. 안드로이드에서 가능합니까?증가/감소 SeekBar 천천히

// ON SEEKBAR CHANGE 
    fill.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { 

     @Override 
     public void onStopTrackingTouch(SeekBar seekBar) { 
      // TODO Auto-generated method stub 
     } 

     @Override 
     public void onStartTrackingTouch(SeekBar seekBar) { 
      // TODO Auto-generated method stub 
     } 

     @Override 
     public void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) { 
      // TODO Auto-generated method stub 

      fillProgress = String.valueOf(progress); 
      fillView.setText(fillProgress); 

     } 
    }); 

    centerDistribution.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 

      // TOAST: ARE YOU SURE YOU WANT TO fill bucket? 
      // IF YES 
      // INCREMENT SEEKBAR SLOWLY 

    } 
    }); 

답변

0

것은 나는 개인적으로이 목적을 위해 그것을 사용한 적이하지만 당신은 확실히 당신의 UI는 이동 과정에서 반응 남아 만들기 위해 AsyncTask를 사용할 수 있습니다. 기본적으로 진행률 표시 줄을 업데이트하는 것처럼 AsyncTask을 사용하지만 대신 진행률 표시 줄 대신 seekbar 값을 업데이트 할 것입니다. 물론

private class AsyncTaskSeekbar extends AsyncTask<String, String, String> 
{  
    @Override 
    protected void doInBackground(String... params) 
    { 
    try 
    { 
    int time = 5000;   //5000 ms = 5 seconds 
    int incTime = 5000/50; //we want it to get to 50 after 5 seconds 100ms per Seekbar unit 

    for(int i = 0; i < time; i += incTime) 
    { 
     Thread.sleep(incTime); 
     publishProgress(); // Calls onProgressUpdate() 
    } 
    } catch (InterruptedException e) { 
    e.printStackTrace(); 
    } catch (Exception e) { 
    e.printStackTrace(); 
    } 
    } 

    @Override 
    protected void onProgressUpdate() 
    { 
    seekBar.setProgess(seekBar.getProgess() + 1); 
    } 
} 

당신의 AsyncTaskSeekbar를 초기화 같은 몇 가지 일을해야한다 등, 동적으로 값을 전달할 것이다 그러나 이것은 당신에게 방법의 좋은 아이디어를 줄 것이다 : You'll need to override the entire class하지만, 빵과 버터는 여기에있을 것입니다 시작하겠습니다.