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

OSCHINA-MIRROR/jeissie-JesseOAF

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

Добро пожаловать в Jesse Open Assist Frame

JOAF — это облегчённая вспомогательная среда разработки приложений для Android, которая объединяет в себе часто используемые инструменты и предлагает их в упрощённом виде. Мы приветствуем обсуждения и обратную связь.

  • Концентрация инструментов: мы объединили в одном месте часто используемые методы работы с системой, чтобы упростить их использование. Кроме того, мы добавили некоторые дополнительные функции. Всё это основано на моей предыдущей работе и представляет собой простое, но ограниченное решение.
  • Открытый исходный код: мы собрали множество отличных открытых инструментов как из Китая, так и из других стран. Мы постоянно обогащаем этот набор, чтобы создать единый пакет lib, который содержит все ресурсы и избавляет от необходимости искать их в интернете.

В этом фреймворке собраны следующие отличные ресурсы, и мы выражаем своё почтение их создателям!

Автор: Jeremy Feinstein: JazzyViewPager — открытый компонент ViewPager с эффектными переходами, очень удобный в использовании.

SlidingMenu — открытый компонент, предоставляющий боковое меню с эффектом скольжения. Он очень мощный и популярный, многие его используют. Здесь не будем подробно останавливаться на нём.

Автор: Chris Banes: PullToRefresh — предоставляет различные виды обновления, которые можно использовать практически во всех компонентах. Поддерживает обновление по четырём направлениям, хотя в некоторых компонентах есть небольшие ошибки.


Общее описание JOAF

Основная идея JOAF заключается в сохранении максимальной простоты и универсальности кода.

1. Util-пакет

  1. Все операции, связанные с попытками, сосредоточены в классе ViewUtill. Этот класс включает в себя Toast, Log, диалоговые окна, переходы между активностями, уведомления о ожидании и выход из приложения. Все методы в этом классе являются статическими и могут быть вызваны в любом месте без необходимости вручную передавать контекст.
  1. Методы, связанные с приложением, помещены в класс AppUtil. В настоящее время он включает в себя получение версии, названия, иконки приложения, а также информацию о том, работает ли приложение на переднем плане.

2. Base-пакет

  1. В настоящее время пакет содержит три базовых класса. Для использования этого фреймворка все активности (включая 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. Базовые классы также предоставляют функции жестов для возврата назад и мониторинга сетевого состояния.

  1. ManagerBase является наследником Observable. Этот класс используется как синглтон, и все синглтоны и управляющие классы, унаследованные от ManagerBase, должны переопределить методы releaseManager и resetPool для очистки сохранённых объектов синглтона. Очистка выполняется после вызова метода exitSystem в ViewUtil.

####3. Система уведомлений

ObserverBus. Эта система уведомлений представляет собой коллекцию наблюдателей. Конкретный способ использования см. в комментариях к коду.

Пользовательские модули JOAF

####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" />

Конкретные свойства включают:
``` 2. В `ViewUtil` добавлено несколько методов: (1) добавлен метод `exchangeActivityWithDefultAnimation` для перехода с использованием анимации по умолчанию. (2) `PopupWindow` стал более конкретным. 3. Классы `BaseActivity` и `BaseFragmentActivity` получили метод `finishAnimation`, который вызывается в методе `finish`. Переопределение этого метода позволяет контролировать анимацию активности. 4. Добавлен новый элемент управления `TimerButton`: ``` инициализируется с помощью initTimeButton(Context context, String buttonText, int timeLength) для запуска обратного отсчёта используется startSub ```

Обратная связь и предложения

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

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

Введение

Android: универсальная платформа для разработки приложений. Развернуть Свернуть
Отмена

Обновления

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

Участники

все

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

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