2012-01-30 2 views
0

進捗状況が10%を超えると、シークバーのサムDrawableを変更しようとしていますが、進捗状況が> 10に達すると、 が親指描画可能な「消える」..これはいくつかのバグを知っていますそれは可能であると思われるほど単純ですか?事前に進捗状況が10%に達したら、SeekBarのThumb-Drawableを変更しますか?

public class SliderTestActivity extends Activity { 
    SeekBar sb; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     sb = (SeekBar)findViewById(R.id.seekBar1); 
     sb.setThumb(getResources().getDrawable(R.drawable.fingerprint)); 
     sb.setProgress(50); 
     sb.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { 

      public void onStopTrackingTouch(SeekBar seekBar) { 
       seekBar.setThumb(getResources().getDrawable(R.drawable.egg)); 

      } 

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

      } 

      public void onProgressChanged(SeekBar seekBar, int progress, 
        boolean fromUser) { 
       if(progress > 10) 
       { 
        sb.setThumb(getResources().getDrawable(R.drawable.egg)); 
       } 

      } 
     }); 
    } 
} 

ありがとう:

は、ここに私のコードです!

答えて

1

私はネット上でこれを見つけた:

final Drawable d = getResources().getDrawable(R.drawable.egg); 
d.setBounds(new Rect(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight())); 
slider.setThumb(d); 

親指が消えない、しかし、変更後に、それは少し奇妙に振る舞います。それはSeekBarの始めと終わりに止まらず、その半分は隠されています。

編集: また、setThumbはサムのオフセットを半分の幅に設定します。親指を設定した後にオフセットを0に設定すると、元の親指のように動作させることができます。

slider.setThumb(d); 
slider.setThumbOffset(0); 
関連する問題