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'
<?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).
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.getDefault(). Создание теней требует фабрики теней (ShadowFactory), которую можно добавлять и удалять с помощью методов addFactory и removeFactory.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )