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

OSCHINA-MIRROR/mosect-AShadow2

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

AShadow2

Android 阴影控件库

С версии AShadow1 библиотека находится в стадии поддержки, но без добавления новых функций.

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

Добавьте в проект build.gradle:

allprojects {
    repositories {
        maven { url 'https://jitpack.io' }
    }
}

В build.gradle нужного проекта добавьте:

implementation 'com.github.Mosect:ViewUtils:1.0.8'
implementation 'com.github.Mosect:AShadow2:2.0.6'

Обновление записи

2.0.6

  • Отказ от jcenter, переход на jitpack.

2.0.5

  • Исправлена проблема, из-за которой некоторые инструменты разработки не могли отобразить предварительный просмотр (можно было увидеть только эффект заполнения цветом, а не эффект тени).

2.0.4

  • Исправлено отсутствие предварительного просмотра теней для представлений (можно было видеть только эффект заполнения цветом).

2.0.2

  • Оптимизировано освобождение теней, теперь нет необходимости вручную освобождать тени.
  • Методы Shadow.unbind и ShadowManager.unbind устарели.

2.0.1

  • Исправлен нулевой указатель в методе RoundShadow.draw.

XML-пример

<?xml version="1.0" encoding="utf-8"?>
<com.mosect.ashadow.ShadowLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#cccccc"
    android:orientation="vertical">

    <View
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_gravity="center"
        app:layout_clipShadow="false"
        app:layout_roundRadius="10dp"
        app:layout_shadowColor="#000000"
        app:layout_shadowRadius="10dp"
        app:layout_solidColor="#ffffff" />
</com.mosect.ashadow.ShadowLayout>
Свойство Java XML Значение
Радиус тени ShadowLayout.LayoutParams.shadowKey.shadowRadius app:layout_shadowRadius dimen
Смещение тени по оси X ShadowLayout.LayoutParams.shadowX app:layout_shadowX dimen
Смещение тени по оси Y ShadowLayout.LayoutParams.shadowY app:layout_shadowY dimen
Цвет тени ShadowLayout.LayoutParams.shadowKey.shadowColor app:layout_shadowColor color
Полудиаметр скругления углов ShadowLayout.LayoutParams.shadowKey.radii app:layout_roundRadius dimen
Верхний левый полудиаметр скругления углов ShadowLayout.LayoutParams.shadowKey.radii app:layout_roundLT dimen
Верхний правый полудиаметр скругления углов ShadowLayout.LayoutParams.shadowKey.radii app:layout_roundRT dimen
Нижний правый полудиаметр скругления углов ShadowLayout.LayoutParams.shadowKey.radii app:layout_roundRB dimen
Нижний левый полудиаметр скругления углов ShadowLayout.LayoutParams.shadowKey.radii app:layout_roundLB dimen
Заливка цветом ShadowLayout.LayoutParams.shadowKey.solidColor app:layout_solidColor color
Тень занимает пространство ShadowLayout.LayoutParams.spaceShadow app:layout_spaceShadow boolean
Удалить заливку цветом ShadowLayout.LayoutParams.noSolid app:layout_noSolid boolean

Описание

Все представления, помещённые в ShadowLayout, могут иметь тень. По умолчанию радиус тени и смещение влияют на её положение. Можно контролировать, будет ли тень занимать место представления, с помощью параметра spaceShadow (не поддерживается для ShadowLinearLayout и ShadowRelativeLayout).

Реализация тени или использование

  • Можно получить тень через ShadowManager.get.
  • Если есть дополнительная реализация тени, необходимо добавить ShadowFactory (фабрика теней) в ShadowManager.
  • Объекты теней не нужно освобождать вручную.

Shadow (тень)

Shadow — это абстрактный класс, представляющий тень. Необходимо реализовать методы draw и onDestroy. Вызов метода Shadow.draw позволяет нарисовать тень в определённой области холста. Для создания объекта тени нужен объект key, который содержит информацию, необходимую для реализации этой тени. Метод Shadow.getKey возвращает ключ тени.

/**
 * Представляет тень
 */
public abstract class Shadow {

    /**
     * Возвращает ключ тени
     *
     * @return Ключ тени
     */
    public Object getKey() {
        return key;
    }

    /**
     * Рисует тень на холсте
     *
     * @param canvas Холст
     * @param rect   Расположение и размер
     * @param paint  Дополнительная кисть
     */
    public abstract void draw(@NonNull Canvas canvas, @NonNull Rect rect, @Nullable Paint paint);
}

ShadowManager (менеджер теней)

Управляет созданием и освобождением теней. Предоставляет стандартный менеджер теней ShadowManager.getDefault(). Создание теней требует фабрики теней (ShadowFactory), которую можно добавлять и удалять с помощью методов addFactory и removeFactory.

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

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

Введение

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

Обновления

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

Участники

все

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

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