В этом фреймворке собраны следующие отличные ресурсы, и мы выражаем своё почтение их создателям!
Автор: Jeremy Feinstein: JazzyViewPager — открытый компонент ViewPager с эффектными переходами, очень удобный в использовании.
SlidingMenu — открытый компонент, предоставляющий боковое меню с эффектом скольжения. Он очень мощный и популярный, многие его используют. Здесь не будем подробно останавливаться на нём.
Автор: Chris Banes: PullToRefresh — предоставляет различные виды обновления, которые можно использовать практически во всех компонентах. Поддерживает обновление по четырём направлениям, хотя в некоторых компонентах есть небольшие ошибки.
Основная идея JOAF заключается в сохранении максимальной простоты и универсальности кода.
- Все операции, связанные с попытками, сосредоточены в классе ViewUtill. Этот класс включает в себя Toast, Log, диалоговые окна, переходы между активностями, уведомления о ожидании и выход из приложения. Все методы в этом классе являются статическими и могут быть вызваны в любом месте без необходимости вручную передавать контекст.
- Методы, связанные с приложением, помещены в класс AppUtil. В настоящее время он включает в себя получение версии, названия, иконки приложения, а также информацию о том, работает ли приложение на переднем плане.
- В настоящее время пакет содержит три базовых класса. Для использования этого фреймворка все активности (включая FragmentActivity) должны наследоваться от классов BaseActivity или BaseFragmentActivity. Основные изменения в этих базовых классах включают переопределение методов onCreate, onResume и onDestroy для записи или удаления контекста текущей взаимодействующей активности.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_base);
ViewUtil.setContext(this);
registerReceiver();
}
@Override
public void onResume() {
super.onResume();
checkGuider();
ViewUtil.setCurrentContext(this);
}
@Override
protected void onDestroy() {
ViewUtil.removeContext(this);
ViewUtil.hideKeyBoard();
this.unregisterReceiver(mReceiver);
super.onDestroy();
}
Конечно, если вы не наследуете от Base, вы можете вручную добавить контекст в свою активность, чтобы обеспечить нормальное использование ViewUtil. Базовые классы также предоставляют функции жестов для возврата назад и мониторинга сетевого состояния.
- ManagerBase является наследником Observable. Этот класс используется как синглтон, и все синглтоны и управляющие классы, унаследованные от ManagerBase, должны переопределить методы releaseManager и resetPool для очистки сохранённых объектов синглтона. Очистка выполняется после вызова метода exitSystem в ViewUtil.
####3. Система уведомлений
ObserverBus. Эта система уведомлений представляет собой коллекцию наблюдателей. Конкретный способ использования см. в комментариях к коду.
####1. AsyncImage для асинхронного чтения и замены сетевых изображений
1.AsyncImageView Этот класс заменяет системный ImageView и предоставляет функции для загрузки, кэширования, хранения и чтения изображений через класс AsyncImageLoader. Перед первым использованием этого метода необходимо инициализировать кэш изображений с помощью метода initPatch или настроить путь с помощью setPatchDefine.
AsyncImageLoader.getInstance().initPatch(this);
2.AsyncImageLoader Это класс для чтения, загрузки, кеширования и сохранения изображений. Он использует LruCache для кеширования памяти и многопоточную обработку. По умолчанию локальный каталог кеша — /Android/data/package name, а отдельный каталог для скачивания изображений — /Photo/package name. Конечно, вы можете настроить путь в соответствии со своими потребностями, наследуя от AsyncImagePathDefine и переопределяя его.
3.AsyncImagePathDefine Этот класс определяет путь для использования с AsyncImageLoader. Вы можете наследовать и переопределить его для настройки пути.
4.AsyncImageScale для масштабирования изображений Вам нужно только передать изображение и требуемые размеры, и оно будет готово (в разработке).
5.AsyncImageviewSetviewComplete Этот интерфейс состояния используется с AsyncImageView для отображения состояния чтения изображения.
####2. SuperButton для многофункциональных кнопок состояния
Многофункциональная кнопка, которой не требуется использовать или <style>, может использовать базовые эффекты нажатия. Она поддерживает текстовые кнопки, прямоугольные кнопки, масштабируемые прямоугольные кнопки и графические фоновые кнопки. Её использование аналогично системным кнопкам, но перед использованием необходимо инициализировать кнопку в соответствии с вашими потребностями.
####3. CustomDialog для пользовательских диалогов
Заменяет уродливые чёрные и белые системные диалоги, предлагая одно- и двухклавишные дисплеи и поддержку изображений. Единый стиль, простой и элегантный.
####4. SwipeListView для горизонтального пролистывания списков
Предоставляет функцию горизонтального перелистывания элементов списка, аналогичную той, что была впервые представлена в iOS. Вид, который раскрывается при перелистывании, можно настроить по своему усмотрению.
####5. VerticalViewPager для вертикального просмотра пейджеров
Можно просматривать страницы вертикально, поддерживая представления и фрагменты. Его использование такое же, как у встроенного Viewpager, за исключением того, что я добавил коррекцию скорости анимации в FixedSpeedScroller.
private int mDuration = 750;
####6. PullToRefreshView для верхнего и нижнего обновления
Это верхняя и нижняя кнопки обновления, которые позволяют настраивать текст обновления и другие элементы. Если вам не нужна нижняя кнопка обновления, её можно отключить. Её можно встроить в различные пространства.
Настройка текста подсказки
public void setHeadText(String refreshPullText, String refreshPullReleaseText,
String refreshingText, String refreshPullDesc) {
this.refreshPullText = refreshPullText;
this.refreshPullReleaseText = refreshPullReleaseText;
this.refreshingText = refreshingText;
this.refreshPullDesc = refreshPullDesc;
}
public void setFootText(String refreshFootText, String refreshFootReleaseText,
String footRefreshingText, String refreshFootDesc) {
this.refreshFootText = refreshFootText;
this.refreshFootReleaseText = refreshFootReleaseText;
this.footRefreshingText = footRefreshingText;
this.refreshFootDesc = refreshFootDesc;
}
``` **Семь, BlurView: динамическое размытие**
> Подобно классическому эффекту размытия, используемому в iOS и Windows 7, это может мгновенно сделать весь интерфейс более внушительным.
Способ применения:
BlurView blurView = new BlurView(context, 13);
blurView.updateBlurView(targetBlurView, backgroundView);
Здесь число 13 обозначает диапазон значений эффекта размытия от 0 до 25.
`targetBlurView` — это представление, которое необходимо размыть, а `backgroundView` — фоновое представление.
Если вы хотите использовать размытие в списке или любом прокручиваемом представлении, вам нужно постоянно вызывать метод `updateBlurView` в прослушивателе Scroller.
**JOAF: обновление журнала**
V1.0
>Начальная версия
V1.1
>Добавлен класс `BlurView`, обеспечивающий динамическое размытие.
>Исправлена ошибка с чтением количества кэша в `ViewLoader`.
V1.1.1
>Удалены ненужные макеты из класса `Base`, чтобы его подклассы могли изменять режим окна с помощью `requestWindowFeature`.
>Исправлен метод `Onclick` в классе `SuperButton`.
V1.1.2
>При входе в активность теперь есть плавный переход вместо чёрного экрана.
>Popup теперь может принимать пользовательский вид, а в существующем `ImagePopup` добавлена группа пользовательских методов.
>Исправлена проблема сбоя при скрытии клавиатуры.
>Оптимизирована структура кода, добавлены три функции-ловушки в классы `BaseActivity` и `BaseFragmentActivity`. Эти методы будут вызываться последовательно в методе `onResume`, обратите внимание на порядок инициализации представлений, чтобы избежать ошибок.
public void initLayout() {
}
public void initActionBar() {
}
public void initData() {
}
public void checkGuider() {
}
V1.1.3
>Исправлено повторное вызов методов инициализации в классах `BaseActivit` и `BaseFragmentActivity` (действительно небрежно).
>Методы, общие для `BaseActivit` и `BaseFragmentActivity`, перемещены в новый класс — `ActivityUtil`. В будущем все общие методы можно будет продолжать расширять в `ActivityUtil`, не затрагивая базовый класс.
V1.1.4
1. В классе `SuperButton` добавлены настраиваемые свойства. Можно напрямую определить фон, изображение, текст и масштаб в XML. При использовании необходимо указать пространство имён, например:
<com.jesse.custom.component.SuperButton android:layout_width="match_parent" android:layout_height="40dp" button:button_color_focus="#ffa89076" button:button_color_normal="@ffa84938" button:button_text="@string/activity_login" button:button_type="color_button" button:text_size="18px" />
Конкретные свойства включают:
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )