Вторник, 12.12.2017, 09:17
Поиск
Никнэйм
Сертификат на никнейм Olelucoye, зарегистрирован на Тимофеев Константин Михайлович
Зарегистрируй свой никнейм
Обратная связь
olelucoye.tk@yandex.ru
Реклама AdSense
Реклама
Друзья сайта
  • Лига медицинского права
  • Гостиница "Зай"
  • FAQ по системе
  • Инструкции для uCoz
  • Главная » Статьи » Андроид разработка

    Кастомизация SeekBar'а

    Для того, чтобы изменить вид SeekBar'а нужно изменить два параметра в его описании в макете

    <SeekBar
           ......
          android:progressDrawable="@drawable/my_progress"
          android:thumb="@drawable/my_thumb" />

    Параметр android:thumb изменяет изображение самого ползунка. Сюда можно прикрутить любое изображение, например такое:

    Добавляем картинку в ресурсы и изменяем параметр thumb. Вот что получается:

    Параметр progressDrawable изменяет вид самой полосы прогресса и заполнение прогресса. Сюда нам нужно прикрутить xml-файл, содержащий описание того как будет выглядеть полоса и чем она будет заполняться. Для общего вида будем использовать 9-patch изображение (что-это такое читаем здесь). Я сделал такое:

    Создадим в папке drawable xml-файл с корневым элементом layer-list. Здесь нам понадобится два item'а - один для общего вида, другой для заполнения. Оба должны иметь параметр android:id именно такой как в коде ниже. По этим параметрам Андроид определяет какой из них применить для фона, а какой для прогресса. Для фона прикрепляем пропатченную картинку с помощью тега nine-patch, а для заливки прогресса пока определим голубой градиент.

    <?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
        <item android:id="@android:id/background">
            <nine-patch
                xmlns:android="http://schemas.android.com/apk/res/android"
                android:src="@drawable/my_seek_back9"
             />
        </item>
        <item android:id="@android:id/secondaryProgress">
            <shape>
                    <gradient
                        android:startColor="#80028ac8"
                        android:centerColor="#80127fb1"
                        android:centerY="0.75"
                        android:endColor="#a004638f"
                        android:angle="270"
                    />
            </shape>
       </item>
    </layer-list>

    Не забываем прикрутить этот файл к параметру progressDrawable в описании SeekBar'а и смотрим что получилось.

    Обратите внимание как помогло нам использование 9-patch изображения - контент (заливка прогресса) располагается только в той области, которая для этого была нами отведена.

    Теперь изменим вид заливки. Для этого возьмем какое-нибудь изображение, например такое:

    И изменим внутренности второго item'а.

    <item android:id="@android:id/secondaryProgress">
          <clip>
            <bitmap xmlns:android="http://schemas.android.com/apk/res/android"
                android:src="@drawable/seek_fill"
                android:tileMode="repeat"
            />
          </clip>  
        </item>

    Параметр tileMode ставим "repeat", чтобы изображение повторялось в заливаемой области. А также помещаем картинку внутри тега clip, для того чтобы повторы изображения плавно совмещались друг с другом. Если убрать этот тег, мы увидим границы между повторами картинки.

    Смотрим, что получилось:

    Кастомный SeekBar готов!

    9-patch изображения для Андроид

    Кастомный ползунок в виде дуги (аналог SeekBar)

    Смартфон DEXP Ixion ML 5, обзор.

    Ошибка 0xс0000005 при запуске программ

    Анимация в Андроид.

    Кастомизация элементов управления в Андроид.

    Создание кастомного View-элемента интерфейса.

    Создание виджета-часы с кастомным шрифтом

    Программируем калькулятор на андроид. Урок 1.

    Игровая консоль DNS EOS

    Планшет DNS AirTab E74

    Категория: Андроид разработка | Добавил: Olelucoye (11.03.2015)
    Просмотров: 2660
    | Теги: полоса прогресса, кастомизация, Andrid, 9-patch, SeekBar, java, ползунок | Рейтинг: 0.0/0
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    Меню сайта
    Категории раздела
    Андроид разработка [23]
    libGDX [24]
    Мои андроид проекты [6]
    Excel [7]
    Железяки [5]
    Скрипты в блокноте [4]
    Разное [1]
    Форма входа
    Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Яндекс Метрика
    Яндекс.Метрика