Android studio seekbar color

SeekBar (Слайдер)

SeekBar — это обычный слайдер, когда пользователь может передвигать ползунок пальцем на экране. Ползунок также можно двигать при помощи клавиш-стрелок.

Компонент SeekBar находится в разделе Widgets и наследуется от класса ProgressBar. В Android Studio 3.0 представлен в двух вариантах: SeekBar и SeekBar (Discrete).

Для отслеживания перемещения ползунка SeekBar необходимо реализовать интерфейс-слушатель SeekBar.OnSeekBarChangeListener с методами-заглушками:

  • onProgressChanged() — уведомляет об изменении положения ползунка;
  • onStartTrackingTouch() — уведомляет о том, что пользователь начал перемещать ползунок;
  • onStopTrackingTouch() — уведомляет о том, что пользователь закончил перемещать ползунок

Заготовка для Kotlin (на Java будет ниже в статье).

Создадим новый проект и добавим компоненты SeekBar и TextView:

Напишем код, чтобы в текстовом поле отображалось текущее значение ползунка после того, как пользователь отпустит его.

Ниже представлены вариант на Android 5.0 и старый вариант на Android 2.3 до появления Material Design, чтобы вы видели, как менялся интерфейс.

Меняем задний фон экрана

Усложним пример и будем менять цвет у фона экрана. Добавим на форму три компонента SeekBar:

Напишем код, меняющий значение цвета через значения ползунка:

Кот Рыжик попросил выставить цвет, наиболее подходящий цвету его шкурки. Я решил ему немного польстить:

Дополнительное чтение

patryk1007/ShootingSlider — прикольный слайдер, напоминающий стрельбу из пушки в играх

Источник

Android studio seekbar color

Android SeekBar and Custom SeekBar Examples

September 23, 2017

Android SeekBar allows user to select a value from the given range of values by providing draggable thumb. SeekBar is a subclass of ProgressBar which is used to show progress of user initiated or backend operations.

In this post, details on how to use android seek bar, material styles, custom material styles, SeekBar event handling, custom seek bar, and seek bar custom track, thumb and tickMark are covered.

Using Android SeekBar

SeekBar can be added to layout using SeekBar element. The important attributes that need to be set are max, progress and layout_width. Using max attribute of SeekBar, you can set maximum value so that user can select a value from the range starting from 0 to the maximum value by dragging seek bar thumb. You can set default selected value by setting value for progress attribute which gets changed as user drags the thumb.

Читайте также:  Sqlite создание базы данных android studio

Below example layout xml contains SeekBar.

Android SeekBar Style Application Level

Above screen shot shows SeekBar when application theme is set to Theme.AppCompat.Light. SeekBar can be customized at application level to show different colors for seekbar background and progress by defining custom colors for colorControlNormal and colorControlActivate.

Android SeekBar Style Individual

Android platform provides Widget.Material.SeekBar (App compact version of it is Widget.AppCompat.SeekBar) and Widget.Material.SeekBar.Discrete material styles for SeekBar.

Below screen shot shows the appearance of seek bar with Widget.Material.SeekBar.Discrete theme. Widget.Material.SeekBar.Discrete is available from API level 24.

SeekBar discrete material style output.

You can define custom material style for seekbar by inheriting Widget.AppCompat.SeekBar and setting custom values for attributes such as progressBackgroundTint, progressTint, and colorControlActivated.

Below material style for seekbar customizes seekbar color by setting background, progress, and thumb colors.

Android SeekBar Event Listener

SeekBar events can be handled by implementing SeekBar.OnSeekBarChangeListener and setting it to seek bar by calling setOnSeekBarChangeListener method.

You can implement behavior for three types of events such as progress change, seek bar touch start and touch stop events using SeekBar.OnSeekBarChangeListener by implementing onProgressChanged, onStartTrackingTouch, and onStopTrackingTouch methods.

SeekBar current value or seek bar progress can be obtained in onProgressChanged, as seekbar current value is passed as parameter to this method.

Android Custom SeekBar

Android seekbar can be customized by providing your own drawable for seek bar track (seek bar progress), seek bar thumb and seek bar tick mark.

SeekBar custom track or progress drawable

Below drawable xml can be used as drawable for seekbar progress.

You can apply the custom drawable to seek bar using progressDrawable attribute.

SeekBar custom track output.

Seek bar custom thumb

Below drawable xml can be used as seek bar thumb.

Apply the above thumb drawable to seek bar by setting thumb attribute.

Seekbar custom thumb output.

SeekBar custom tickMark

SeekBar tick mark can be customized by defining a drawable xml and applying it to seek bar using tickMark attribute.

Below xml is a drawable xml for customizing seek bar tickMark.

Applying seekbar custom tickMark drawable.

Seekbar custom tickMark output

About

Android app development tutorials and web app development tutorials with programming examples and code samples.

Источник

Кастомный UI Slider (SeekBar)

Android слайдер (или SeekBar как его называют в мире Android) является довольно скользким UI елемент, который мы недавно использовали в нашем Call Your Folks! приложении в качестве средства выбора частоты напоминание от одного дня до трех месяцев.

Я расскажу вам о создании кастомизированного seekbar для вашего Android приложения, используя только несколько XML и drawables.

Шаг 1: Создайте свое изображения Drawables (9-Patch)

Перед созданием любого XML drawables убедитесь, что вы создаете изображения drawables (включая один 9-patch drawable) необходимого для фона seekbar. 9-patch drawables будет использоватся в XML drawables ниже.
Создайте следующие drawables и поместить их в папку /res/drawable/

Шаг 2: SeekBar Progress Drawable

Создадите XML-файл для Android SeekBar который будет отображать прогресс, назовите его seekbar_progress_bg.xml и разместите его в папке /res/drawable/

Читайте также:  Spreadtrum sc7731 android 8

XML выше сначала рисует полупрозрачный, голубой градиент, потом слой с полупрозрачными полосками поверх градиента. Строчка кода android:tileMode=»repeat» относится к полосе (полупрозрачной) картинки внутри вашей папки drawable созданой в Шаге 1.

Для получения дополнительной информации о создании кастомних форм(shape) с помощью XML используйте ресурси Android drawable resources docs, в частности bitmap и shape секции.

Шаг 3: SeekBar фон Drawable

Далее создайте основной drawable для отображения прогресса, это будет назначить drawable для progress и secondaryProgress действий внутри вашего seekbar. Назовите ваш drawable seekbar_progress.xml и разместите его в папке /res/drawable/

Код в теге nine-patch посилается на фоновое изображение создание в Шаге 1, последний блок посилается на drawable создани в Шаге 2.

Шаг 4: Соберем все в вместе

На данный момент, все, что вам нужно сделать, это визвать seekbar_progress drawable когда создаете seekbar

Две последние строчки устанавливают drawables для прогресса и ползунока для SeekBar . @drawable/seekbar_progress drawable созданий в предыдущем шаге.

Источник

SeekBar

SeekBar — это расширение ProgressBar, которое представляет собой слайдер. С его помощью пользователь может перемещать ползунок, устанавливая нужное значение прогресса. Например, с помощью слайдера можно регулировать уровень яркости или громкости.

Чтобы добавить SeekBar на активность, достаточно определить его XML.

Если вам нужно задать изначальный прогресс, то это можно сделать с помощью XML или программно.

    Через XML
    В коде разметки нужно добавить атрибут android:progress и передать в него уровень достигнутого прогресса.

По умолчанию максимальный прогресс равен 100, однако его можно изменить с помощью атрибута android:max.

Программно
В коде активности нужно определить экземпляр SeekBar и затем указать прогресс с помощью метода setProgress(), в аргументы которого передаётся значение прогресса.

Кроме того, можно не задавать конкретный прогресс, а увеличивать текущий на определенную величину. Для этого можно воспользоваться методом incrementProgressBy().

Аналогично способу в XML, можно программно задать максимальное значение прогресса следующим образом.

Если вы хотите узнать текущий прогресс и его максимальное значение, вы можете воспользоваться методами getProgress() и getMax() соответственно.

К SeekBar можно добавить слушатель, который будет получать изменение прогресса. Сделать это можно с помощью метода setOnSeekBarChangeListener().

При этом будут реализованы 3 следующих метода:

  • onProgressChanged() — уведомляет о том, что в SeekBar произошли изменения (например, изменён прогресс).
  • onStartTrackingTouch() — уведомляет о том, что пользователь прикоснулся к ползунку.
  • onStopTrackingTouch() — уведомляет о том, что пользователь перестал касаться ползунка.

Настроим слушатель, чтобы он изменял уровень прозрачности фона у кнопки в зависимости от прогресса. Для этого в XML добавим Button.

Затем определим экземпляр Button в коде активности и после этого в методе onProgressChanged добавим изменение прозрачности. Также добавим всплывающие сообщение, сообщающие о срабатывании методов onStartTrackingTouch() и onStopTrackingTouch().

В результате получим следующее:

У SeekBar существует возможность кастомизации, заключающаяся в изменении полосы прогресса и ползунка на какой-либо свой.

Чтобы изменить полосу прогресса, нужно создать XML Drawable. Для этого в папке res/drawable создадим файл seek_bg.xml.

Затем в коде разметки воспользуемся атрибутом android:progressDrawable и передадим в него созданный файл.

Таким образом, можно легко изменить полосу прогресса у слайдера.

Аналогично можно заменить ползунок. Для этого нужно воспользоваться атрибутом android:thumb, в значении которого указать изображение, которое вы хотите использовать в качестве ползунка.

Читайте также:  Экраны загрузки для андроида

Источник

Android SeekBar using Kotlin

Android Tutorial

In this tutorial, we’ll discuss and implement SeekBar in our Android Application using Kotlin.

What is Android SeekBar?

SeekBar is a UI element that is an extension of the ProgressBar.

SeekBar adds a draggable thumb to the ProgressBar. It is commonly used in music apps to provide volume control.

SeekBar is like a scale with an upper and lower limit and every step is a single unit.

SeekBar XML Attributes

Some of the important XML attributes of SeekBar are:

  • android:minWidth/maxWidth/minHeight/maxHeight : these attributes are used to set the dimensions of the seekbar view. They don’t change the thickness of the SeekBar.
  • android:max/min : The upper/lower limit of the SeekBar. The android:min is available from Android SDK 26 and above.
  • android:progress : The current value of the thumb position.
  • android:progressTint : Here we pass the color for the progress to the left of the thumb position.
  • android:progressBackgroundTint : This color is displayed for the SeekBar background, to the right of the thumb.
  • android:thumb : Here we can pass a custom drawable that will act as the thumb of the seek bar.
  • android:thumbTint : color of the thumb.
  • android:thumbOffset : The distance between the thumb and the current progress in dp . A negative value shifts the thumb to the right of the progress. A positive one shifts it to the left.
  • style : it’s used to set custom/predefined styles on the SeekBar. There is a popular seekbar style – “Discrete” – which breaks the progress into discrete intervals.
  • android:tickMark : Here we pass a drawable, which acts as breakpoints on the SeekBar. The number of breakpoints/tickMarks is equal to android:max.
  • android:tickMarkTint : used to set a color on the tickMark drawable.
  • android:splitTrack : This expects a boolean value. By default on Android Lollipop and above this is true. It splits the Seekbar track into two parts – left and right of the SeekBar. This isn’t always visible in white background activities.

Creating SeekBar in Kotlin

We can implement the SeekBar.OnSeekBarChangeListener interface to create SeekBar programatically. We have to implement the following three Kotlin functions.

SeekBar Examples

Let’s look at the different types of SeekBar by setting the above properties.

1. Simple SeekBar

2. SeekBar with Progress Tint Color

3. SeekBar with Thumb Tint Color And Offset

4. SeekBar with TickMarks

The tickmark.xml drawable is given below.

5. SeekBar with Custom Style

Here we set Discrete style with different intervals (max value).

6. SeekBar with Split Track

The first one has a Split track enabled by default. The second one does not.

Android SeekBar Kotlin Project Structure

1. Activity XML Code

The code for the activity_main.xml layout is as follows.

We’ve created a custom thumb in the last SeekBar.

2. Activity Kotlin Code

The Kotlin code for the MainActivity.kt class is as follows.

In the above code, we’ve created a SeekBar in Kotlin and added it to the LinearLayout.

Источник

Оцените статью