1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/archermind-ti-percentagechartview

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Процентная диаграмма

Описание проекта

Разнообразная библиотека для реализации процентных индикаторов выполнения, включая кольцевой, круговой и заполняющий стили.

Демонстрация функций

Кольцевой режим

Рисунок 1. Рисунок 2. Рисунок 3. Рисунок 4.

Круговой режим

Рисунок 5. Рисунок 6. Рисунок 7. Рисунок 8.

Заполняющий режим

Рисунок 9. Рисунок 10. Рисунок 11. Рисунок 12.

Интеграция

Способ 1

  1. Загрузите har-пакет PercentageChartView из PercentageChartView.har (находится в папке output).
  2. Запустите DevEco Studio и импортируйте скачанный har-пакет в каталог «entry->libs».
  3. В файле build.gradle на уровне модуля добавьте зависимость, добавив ссылку на har-пакет из каталога libs.
dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar', '*.har'])
      implementation project(':PercentageChartView')
    ……
}
  1. Щёлкните правой кнопкой мыши по импортированному har-пакету, выберите «Добавить как библиотеку», выберите нужный модуль для ссылки и нажмите «ОК» для успешной ссылки.

Способ 2

  1. Добавьте зависимость от PercentageChartView в файл build.gradle модуля.

    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar', '*.har'])
     
        ……
        implementation 'com.gitee.archermind-ti:PercentageChartView:1.0.0'
    }
  2. Добавьте ссылку на mavenCentral() в файл build.gradle проекта.

    allprojects {
        repositories {
            ……
            mavenCentral()
        }
    }

Использование

    <com.ramijemli.percentagechartview.PercentageChartView
        ohos:id="@+id/view_id"
        ohos:layout_width="match_parent"
        ohos:layout_height="match_parent"
        app:pcv_mode="pie"
        app:pcv_orientation="counter_clockwise"
        app:pcv_animDuration="800"
        app:pcv_animInterpolator="anticipate_overshoot"
        app:pcv_progress="10"
        app:pcv_startAngle="90"/>

Функции

Атрибуты

Имя Формат По умолчанию Поддерживаемые режимы Описание
pcv_mode enum pie - Устанавливает внешний вид процентной диаграммы на «кольцо», «круг» или «заполнение».
pcv_orientation enum clockwise Круг, кольцо Определяет направление рисования прогресса как «по часовой стрелке» или «против часовой стрелки».
pcv_startAngle integer 0 Все Устанавливает начальный угол рисования прогресса в диапазоне [0..360].
pcv_animDuration integer 400 Все Задаёт длительность анимации обновления прогресса.
pcv_animInterpolator enum linear Все Определяет интерполятор анимации обновления прогресса на «линейный», «ускорение», «замедление», «ускорение|замедление», «предвосхищение», «перерегулирование», «предвосхищение|перерегулирование», «отскок».
pcv_drawBackground boolean true для кругового режима
false для кольцевого режима
Все Указывает, следует ли рисовать фон.
pcv_backgroundColor color #000000 Все Устанавливает цвет фона.
pcv_progress integer 0 Все Обозначает текущий прогресс.
pcv_progressColor color Цвет акцента Все Определяет цвет прогресса.
pcv_textColor color #ffffff Все Настраивает цвет текста.
pcv_textSize dimension #12sp Все Регулирует размер текста в SP.
pcv_typeface string Системный шрифт Все Назначает путь к файлу шрифта прогресса в папке assets.
pcv_textStyle flag normal Все Выбирает стиль текста прогресса на «нормальный», «жирный», «курсив», «полужирный|курсив».
pcv_textShadowColor color #00ffffff Все Управляет цветом тени/свечения текста.
pcv_textShadowRadius string 0 Все Контролирует радиус тени/свечения текста.
pcv_textShadowDistX float 0 Все Изменяет расстояние тени/свечения по оси X.
pcv_textShadowDistY float 0 Все Модифицирует расстояние тени/свечения по оси Y.
pcv_backgroundOffset dimension 0dp Круг, заполнение Устанавливает отступ только для фона.
pcv_drawBackgroundBar boolean true Кольцо Определяет, следует ли рисовать полосу фона.
pcv_backgroundBarThickness dimension 16dp Кольцо Задаёт толщину полосы фона в DP.
pcv_backgroundBarColor color #000000 Кольцо Устанавливает цвет полосы фона.
pcv_progressBarThickness dimension 16dp Ring Задаёт толщину полосы прогресса в DP.
pcv_progressBarStyle enum round Ring Устанавливает стиль полосы прогресса на «round» или «square».
pcv_gradientType enum - All Определяет тип градиента для цветов полосы прогресса: "linear", "radial" или "sweep". (Sweep не поддерживается для режима заливки).
pcv_gradientColors string - All Задаёт цвета градиента полосы прогресса в формате шестнадцатеричных значений цветов через запятую; "#F44336 , #2196F3 , #00BCD4".
pcv_gradientDistributions string - All Устанавливает распределение цветов градиента через запятую в виде значений с плавающей точкой; "0.2 , 0.5 , 0.8". Значения должны быть монотонными и принадлежать диапазону [0..1]. Если цвета игнорируются, они будут распределены равномерно.
pcv_gradientAngle integer pcv_startAngle All Задает угол рисования линейного градиента цветов в диапазоне [0..360].

Начальный угол

Атрибуты pcv_startAngle и pcv_gradientAngle принимают значения следующей диаграммы.

Использование процесса

Все атрибуты XML, кроме атрибута pcv_mode (на данный момент), имеют соответствующий атрибут Java.

Можно изменить и вызвать метод apply(), чтобы установить обновление. Это обеспечит перерисовку представления.

    mChart.textColor(Color.BLACK)  
          .textSize(sizeSp)  
          .typeface(typeface)  
          .textShadow(Color.WHITE, 2f, 2f, 2f)  
          .progressColor(Color.RED)  
          .backgroundColor(Color.BLACK)  
      .apply();

Для отдельного обновления можно вызвать необходимый метод setter. Например, setTextSize (sizeSp).

Основные адаптивные цвета полосы прогресса

Чтобы использовать свойства цвета каждого прогресса, необходимо использовать метод setAdaptiveColorProvider() и передать класс AdaptiveColorProvider . Адаптивные цвета могут применяться к полосе прогресса, фону, тексту и фоновой панели. Стоит отметить, что приоритет градиентных цветов выше предоставленных цветов, вы можете игнорировать переопределение ненужных методов, поскольку по умолчанию существует реализация.

AdaptiveColorProvider colorProvider = new AdaptiveColorProvider() {  
    @Override  
    public int provideProgressColor(float progress) {  
        if (progress <= 25)  
            return colorOne;  
        else if (progress <= 50)  
            return colorTwo;  
        else if (progress <= 75)  
            return colorThree;  
        else return colorFour;  
    }
  
    @Override  
    public int provideBackgroundColor(float progress) {  
        //This will provide a bg color that is 80% darker than progress color.
        return ColorUtils.blendARGB(provideProgressColor(progress), Color.BLACK, .8f);  
    }  
  
    @Override  
    public int provideTextColor(float progress) {  
        return provideProgressColor(progress);  
    }
  
    @Override  
    public int provideBackgroundBarColor(float progress) {  
        return ColorUtils.blendARGB(provideProgressColor(progress), Color.BLACK, .5f);  
    }  
};

mPieChart.setAdaptiveColorProvider(colorProvider);

Мониторинг изменений полосы прогресса

Можно отслеживать изменения полосы прогресса, установив OnProgressChangeListener .

chart.setOnProgressChangeListener(new PercentageChartView.OnProgressChangeListener() {
    @Override
    public void onProgressChanged(float progress) {
        Log.d(TAG, String.valueOf(progress));
    }
});

Форматирование текста

Для текста можно использовать другие единицы вместо процентов. Необходимо использовать метод setTextFormatter() и передать класс ProgressTextFormatter .

mRingChart.setTextFormatter(new ProgressTextFormatter() {  
    @Override  
    public String provideFormattedText(float progress) {  
        int days = (int) (progress * maxDays / 100);  
        return days + " days";  
    }  
});

Версионная история

  • v1.0.0

License

   Copyright 2019 Rami Jemli
   
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at
   
       http://www.apache.org/licenses/LICENSE-2.0
   
   Unless required by applicable law or agreed to in writing, 
   software distributed under the License is distributed on an "AS IS" BASIS, 
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
   See the License for the specific language governing permissions 
   and limitations under the License.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/archermind-ti-percentagechartview.git
git@api.gitlife.ru:oschina-mirror/archermind-ti-percentagechartview.git
oschina-mirror
archermind-ti-percentagechartview
archermind-ti-percentagechartview
master