Как изменить стартовую позицию трека Android SeekBar? - PullRequest
11 голосов
/ 18 октября 2011

Я бы хотел установить начальную позицию трека SeekBars, чтобы он не начинался с левой стороны панели поиска, а формировал произвольную позицию.Вот изображение фотошопа, как оно должно выглядеть:

http://i.imgur.com/QCMEu.png

Это должен быть просто графический эффект, базовая логика SeekBar не меняется.1009 * Я пытался изменить Seekbar.getprogressDrawable.SetBounds(), чтобы изменить положение изображения дорожки, но безуспешно.

Ответы [ 6 ]

9 голосов
/ 18 октября 2011

добавить это свойство

 android:progress="2" 
7 голосов
/ 18 октября 2011

Вы можете установить прогресс SeekBar в XML как:

android:progress="10"
android:max="90" <!-- maximum seekbar progress -->

Вы можете программно установить прогресс SeekBar как:

seekBar.setProgress(10);
1 голос
/ 29 ноября 2016

Вы можете добавить это: Android: вращение = "180" в XML, и тогда панель поиска перевернется так, как вы хотите

1 голос
/ 02 апреля 2014

Может быть, ваша проблема похожа на Панель поиска для двух значений [-50, 0, 50] .

Благодаря Commonsware, чтобы указать правильное направление. Я написал класс, вдохновленный code.google.com/p/range-seek-bar), чтобы найти решение.

https://github.com/vashisthg/StartPointSeekBar

1 голос
/ 15 марта 2013

С помощью Programatics мы можем запустить процесс и установить максимум прогресса на панели поиска.

//start from <starting value>
seekBar.setProgress(<strating_value>);

//Set to maximum Value<max_value>
seekBar.setMax(<max_value>);
0 голосов
/ 15 января 2016

Просто столкнулся с той же проблемой. Вот как я это решил.

Предположим, нам нужен searchbar, начиная с 10 и заканчивая 150.

@Override
    protected void onCreate(Bundle savedInstanceState)
    {...
     yourSpinner = (Spinner) findViewById(R.id.your_spinner);
     yourSpinner.setMax(150 - 10);

     int newProgress;

     yourSpinner.setOnSeekBarChangeListener(new   SeekBar.OnSeekBarChangeListener()
        {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser)
            {
                newProgress= 10 + progress;

                Toast.makeText(getApplicationContext(), String.valueOf(newProgress), Toast.LENGTH_LONG).show();
            }
        });
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...