1

I have created a custom seekBar where a new thumb is drawn as the slider is moved. I now want the thumb to show an enlarged thumb if it is pressed and then the original size is shown when the user takes their finger off the thumb.So if a user presses the thumb it is enlarged to twice the size. However this causes the enlarged thumb to be displayed but the rest of the seekBar has disappeared. Below is my code:

public class GradeSeekBar extends SeekBar implements OnSeekBarChangeListener {

    String TAG = "TOUCHING";


    public GradeSeekBar(Context context, SeekBar seekbar) {
        super(context);

    }

    public GradeSeekBar(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public GradeSeekBar(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    @Override
    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
        //
        seekBar.setMax(7);

        int value = seekBar.getProgress();

        switch (value) {
        case 0:
            final int drawableId1 = R.drawable.readinglevelsliderk;
            final Drawable d1 = getResources().getDrawable(drawableId1);
            seekBar.setThumb(d1);


            break;
        case 1: // 1
            final int drawableId2 = R.drawable.readinglevelslider1;
            final Drawable d2 = getResources().getDrawable(drawableId2);
            seekBar.setThumb(d2);
            break;
        case 2:
            final int drawableId3 = R.drawable.readinglevelslider2;
            final Drawable d3 = getResources().getDrawable(drawableId3);
            seekBar.setThumb(d3);

            break;
        case 3:
            final int drawableId4 = R.drawable.readinglevelslider3;
            final Drawable d4 = getResources().getDrawable(drawableId4);
            seekBar.setThumb(d4);
            break;
        case 4:
            final int drawableId5 = R.drawable.readinglevelslider4;
            final Drawable d5 = getResources().getDrawable(drawableId5);
            seekBar.setThumb(d5);
            break;
        case 5:
            final int drawableId6 = R.drawable.readinglevelslider5;
            final Drawable d6 = getResources().getDrawable(drawableId6);
            seekBar.setThumb(d6);
            break;
        case 6:
            final int drawableId7 = R.drawable.readinglevelslider6;
            final Drawable d7 = getResources().getDrawable(drawableId7);
            seekBar.setThumb(d7);
            break;
        case 7: // All
            final int drawableId8 = R.drawable.allbutton;
            final Drawable d8 = getResources().getDrawable(drawableId8);
            seekBar.setThumb(d8);
            break;
        case 8: // All
            final int drawableId9 = R.drawable.allbutton;
            final Drawable d9 = getResources().getDrawable(drawableId9);
            seekBar.setThumb(d9);
            break;


        }

    }

    @Override
    public void onStartTrackingTouch(SeekBar seekBar) {
        // TODO Auto-generated method stub
        int value = seekBar.getProgress();

        switch (value) {
        case 0:
            final int drawableId1 = R.drawable.readinglevelsliderkdouble;
            final Drawable d1 = getResources().getDrawable(drawableId1);
            seekBar.setThumb(d1);


            break;
        case 1: // 1
            final int drawableId2 = R.drawable.readinglevelslider175x2;
            final Drawable d2 = getResources().getDrawable(drawableId2);
            seekBar.setThumb(d2);

            break;
        case 2:
            final int drawableId3 = R.drawable.readinglevelslider275x2;
            final Drawable d3 = getResources().getDrawable(drawableId3);
            seekBar.setThumb(d3);

            break;
        case 3:
            final int drawableId4 = R.drawable.readinglevelslider375x2;
            final Drawable d4 = getResources().getDrawable(drawableId4);
            seekBar.setThumb(d4);
            break;
        case 4:
            final int drawableId5 = R.drawable.readinglevelslider475x2;
            final Drawable d5 = getResources().getDrawable(drawableId5);
            seekBar.setThumb(d5);
            break;
        case 5:
             // 5
            break;
        case 6:
            // 6
            break;
        case 7: // All

            break;
        case 8: // All

            break;

        }

    }

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

        int value = seekBar.getProgress();

        switch (value) {
        case 0:
            final int drawableId1 = R.drawable.readinglevelsliderk;
            final Drawable d1 = getResources().getDrawable(drawableId1);
            seekBar.setThumb(d1);


            break;
        case 1: // 1
            final int drawableId2 = R.drawable.readinglevelslider1;
            final Drawable d2 = getResources().getDrawable(drawableId2);
            seekBar.setThumb(d2);
            break;
        case 2:
            final int drawableId3 = R.drawable.readinglevelslider2;
            final Drawable d3 = getResources().getDrawable(drawableId3);
            seekBar.setThumb(d3);

            break;
        case 3:
            final int drawableId4 = R.drawable.readinglevelslider3;
            final Drawable d4 = getResources().getDrawable(drawableId4);
            seekBar.setThumb(d4);
            break;
        case 4:
            final int drawableId5 = R.drawable.readinglevelslider4;
            final Drawable d5 = getResources().getDrawable(drawableId5);
            seekBar.setThumb(d5);
            break;
        case 5:
            final int drawableId6 = R.drawable.readinglevelslider5;
            final Drawable d6 = getResources().getDrawable(drawableId6);
            seekBar.setThumb(d6);
            break;
        case 6:
            final int drawableId7 = R.drawable.readinglevelslider6;
            final Drawable d7 = getResources().getDrawable(drawableId7);
            seekBar.setThumb(d7);
            break;
        case 7: // All
            final int drawableId8 = R.drawable.allbutton;
            final Drawable d8 = getResources().getDrawable(drawableId8);
            seekBar.setThumb(d8);
            break;
        case 8: // All
            final int drawableId9 = R.drawable.allbutton;
            final Drawable d9 = getResources().getDrawable(drawableId9);
            seekBar.setThumb(d9);
            break;


        }



    }

}

This is how it is placed in my main_activity.xml file:

<com.android.views.GradeSeekBar
        android:id="@+id/seekBar2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/imageButtonFilter"
        android:layout_toLeftOf="@+id/imageButtonArrowRight"
        android:layout_toRightOf="@id/imageButtonFilter"
        android:paddingLeft="52dp"
        android:paddingRight="35dp"
        android:thumb="@drawable/readinglevelsliderk"
        android:visibility="visible" />

Is there a certain max size you can set your thumbs?

DMC
  • 1,184
  • 5
  • 21
  • 50

0 Answers0