Как ThumDrawable ведет себя в SeekBar? - PullRequest
2 голосов
/ 03 августа 2020

Как ThumbDrawable работает в SeekBar?

Я не могу понять, почему при установке thumbDrawable с использованием следующего метода seekBar.setThumb (new CustomDrawable), когда я переопределяю метод рисования, холст (0 , 0) координаторы не размещаются в соответствии со значением прогресса SeekBar (где-то в ProgressDrawable), а вместо этого размещаются в верхнем левом месте (намного выше ProgressDrawable).

Почему при использовании seekBar.setThumb (getContext () .getResource (). getDrawable (R.drawable.someXmlDrawable), someXmlDrawble (xml файл) рисует точно на ProgressDrawable , учитывая значение прогресса, но когда я добавляю возможность рисования программно, координаты холста не помещаются в ProgressDrawable в нужное место (с учетом значения прогресса).

Пример кода (добавление программного рисования):

   SeekBar seekBar = findViewById(R.id.seek_bar);
                seekBar.setThumb(new Drawable() {
                    @Override
                    public void draw(@NonNull Canvas canvas) {

                    }

                    @Override
                    public void setAlpha(int alpha) {

                    }

                    @Override
                    public void setColorFilter(@Nullable ColorFilter colorFilter) {

                    }

                    @Override
                    public int getOpacity() {
                        return 0;
                    }
                });

Пример кода (добавление Drawable из XML):

seekBar.setThumb(new Drawable(R.drawable.someXmlDrawable);
...