How do I get the thumb of an Android SeekBar to match the height of the SeekBar?

前端 未结 2 557
小鲜肉
小鲜肉 2020-12-17 06:24

Do I need to implement a custom thumb Drawable?

相关标签:
2条回答
  • 2020-12-17 07:02

    With some digging, I found how to supply a custom Drawable thumb. Here's an excerpt that may help others.

      ShapeDrawable thumb = new ShapeDrawable( new RectShape() );
      thumb.getPaint().setColor( 0x00FF00 );
      thumb.setIntrinsicHeight( 80 );
      thumb.setIntrinsicWidth( 30 );
      mySeekBar.setThumb( thumb );
    
    0 讨论(0)
  • 2020-12-17 07:25

    It's an old post, but I found this from google. so here's my solution:

    Drawable thumb; //load this earlier.
    
    @Override
    protected void onFinishInflate() {
        super.onFinishInflate();
        thumb = getContext().getResources().getDrawable(R.drawable.slider_thumb);
    }
    
    private void expandThumb(int height) {
        thumb.setBounds(0, 0, thumb.getIntrinsicWidth(), height); 
        //force a redraw
        int progress = getProgress();
        setProgress(0);
        setProgress(progress);
    }
    
    @Override
    protected void onSizeChanged(int w, int h, int oldw, int oldh) {
        super.onSizeChanged(w, h, oldw, oldh);
        expandThumb(h);
    }
    
    0 讨论(0)
提交回复
热议问题