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

OSCHINA-MIRROR/tianyalei-AndBase

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

AndBase: обзор функций фреймворка

Этот фреймворк был ранее скачан с официального сайта AndBase. В процессе работы над проектом в него постоянно добавлялись различные часто используемые инструменты, классы и элементы управления. Таким образом, он становился всё больше, а его функциональность расширялась. Постепенно он стал неотъемлемой частью процесса разработки проектов. После добавления зависимости многие функции стали доступны «из коробки», что значительно сократило объём дополнительной работы. Это делает использование фреймворка очень удобным.

В целом, это набор инструментов, которые делают разработчика всё более ленивым.

1. Библиотеки (libs)

  • Butterknife — инструмент для генерации определений view на основе макетов и сопоставления id. Также требует использования плагина Butterknife.
  • Fastjson — библиотека для анализа JSON. В сочетании с плагином GsonFormat и классом JsonUtil из пакета util позволяет обрабатывать JSON быстро и эффективно.
  • Glide — фреймворк для загрузки изображений с высокой производительностью. В сочетании с классом ImageDisplay из пакета com.ab.view.bannerimages позволяет легко загружать сетевые изображения, включая GIF.
  • Xutils — ещё один хороший фреймворк, который предоставляет полезные функции для аннотаций, сетевых запросов и базы данных. Рекомендуется использовать его аннотации.

2. Пакет activity

Изначально проект AndBase имел только один класс AbActivity. Позже были добавлены дополнительные классы. Использование AbActivity можно найти на официальном сайте AndBase. Я добавил в этот класс progressDialog, и при наследовании от него можно отображать индикатор прогресса с помощью методов showProgressDialog и closeProgressDialog.

Класс BaseActivity используется для реализации разбивки на страницы. Он подходит для создания списка или сетки внутри одного activity. Наследование от этого класса позволяет реализовать функции прокрутки вверх и вниз, основная задача которых — обработка разбивки на страницы. Вот пример использования:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:background="@color/main_bg">

    <include
            android:id="@+id/top"
            layout="@layout/title_layout"/>

    <include layout="@layout/pull_fresh_view"/>
</LinearLayout>

title_layout — это общий макет для заголовка, включающий такие элементы, как кнопки возврата и заголовок.

pull_fresh_view выглядит следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<com.ab.view.pullview.AbPullToRefreshView
        android:layout_below="@+id/top"
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/mPullRefreshView"
        android:scrollbars="none"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    <smoothprogressbar.SmoothProgressBar
            android:layout_below="@+id/top"
            android:id="@+id/sm_progressbar"
            style="@style/GPlusProgressBar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:indeterminate="true"
            android:paddingLeft="1dip"
            android:paddingRight="1dip"
            android:visibility="gone"/>

    <ListView
            android:id="@+id/mListView"
            android:fadingEdge="none"
            android:clipToPadding="false"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:scrollbarStyle="outsideOverlay"
            android:cacheColorHint="@android:color/transparent"
            android:dividerHeight="1px"
            android:divider="@color/divider_color"/>

</com.ab.view.pullview.AbPullToRefreshView>

Здесь в AbPullToRefreshView добавляется ListView или GridView, что позволяет использовать BaseActivity для реализации разбиения на страницы. Для использования BaseActivity необходимо вызвать метод initRefreshView в классе Activity. Этот метод принимает несколько параметров: requestCode, map, callback. Параметр requestCode является идентификатором сетевого запроса. Затем следует передать параметры map и callback, после чего можно добавить AbPullToRefreshView, ListView и адаптер. Внутри также есть абстрактный метод getHttpUtilListener, который позволяет пользователю указать, какой класс сетевых запросов будет использоваться.

После создания адаптера вызовите метод initRefreshView. При успешном выполнении запроса не забудьте вызвать doSuccess и передать объект коллекции. Если запрос завершается неудачно, используйте doFailure. Если вам не нужно выполнять дополнительные операции, просто вызовите doSuccess и doFailure, чтобы уведомить родительский класс о необходимости разбивки на страницы.

ImageBaseActivity предназначен для выбора и съёмки фотографий. После наследования от этого класса вызовите метод showAlbumDialog, передав максимальное количество выбираемых фотографий и обратный вызов. Обратный вызов содержит адреса выбранных фотографий или адрес альбома после съёмки. Затем вы можете использовать полученный адрес для выполнения различных операций, таких как загрузка.

3. Адаптер (adapter)

AbCommonAdapter используется для создания пользовательских адаптеров. Его использование можно посмотреть на примере создания адаптера выше. Вы также можете обратиться к этой статье.

4. Bmob

Это Java-реализация Bmob, основанная на REST API. Если ваш сервер использует Bmob, вы можете использовать класс Bmob в Java-проектах для выполнения таких операций, как создание, чтение, обновление и удаление данных, а также отправка SMS-сообщений для проверки подлинности. Эта реализация предназначена для Java EE и Android проектов, использующих Bmob.

5. Фрагмент (fragment)

Новый добавленный фрагмент — LazyFragment, предназначенный для отложенной загрузки. После наследования этого фрагмента вы можете выполнить необходимые операции в методе lazyload, когда фрагмент становится видимым. Здесь я хотел бы добавить небольшой код для обработки двойного нажатия кнопки «Назад» для выхода из приложения. АбТостУтил.шоуТост(это, "Нажмите еще раз для выхода из программы");

новый Хандлер().постДелатэд(новый Рунаблэ() {

    @Оверрид публичное вун пустот ран() {
        даблБэкТуЭкзитПрессэдОнс = фальс;
    }
}, 2000);

} даблбэктуэкзитпрессэд онс — это определённая булевская переменная.

6.hongyang пакет

Здесь в основном размещаются некоторые коды из блога csdn hongyang. Есть ImageLoader для загрузки изображений, макет с процентным соотношением (http://blog.csdn.net/lmj623565791/article/details/46767825), ImageView для жестов увеличения и уменьшения масштаба и т. д.

7.http пакет

Здесь добавлено HttpUtil, можно обратиться к объяснению в http://blog.csdn.net/tianyaleixiaowu/article/details/50735991. Остальное — это сетевые запросы, которые поставляются с исходным фреймворком.
Поскольку Android 6 больше не поддерживает httpclient, позже я создал ещё один инструмент класса HttpTool на основе okhttp. Его использование аналогично использованию HttpUtil, за исключением того, что фреймворк был изменён на okhttp.

8.task пакет

Классы в этом пакете довольно полезны и могут заменить AsyncTask. Здесь есть пул потоков, очередь и другие полезные классы. Для получения дополнительной информации о том, как их использовать, вы можете поискать AbTask в Интернете. Они подходят для обработки некоторых связанных с потоками задач.

9.util пакет

Это просто смесь всего. Класс JudgeTime используется для отображения «несколько дней назад» или «несколько минут назад». TimeCountUtil используется для обратного отсчёта, например, при получении кода подтверждения по телефону. Другие часто используемые классы включают AbLogUtil, AbSharedUtil для использования sharedpreference и AbToastUtil. В пакете много классов, и вы можете примерно понять, для чего они используются, просто взглянув на их названия.

10.view пакет

bannerimage используется для создания карусели, которая автоматически вращается. Чтобы использовать его, включите этот макет в свой макет:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
        android:layout_width = "match_parent"
        android:layout_alignParentTop = "true"
        android:id = "@+id/frame_layout"
        android:layout_height = "160dip"
        xmlns:android = "http://schemas.android.com/apk/res/android">

    <android.support.v4.view.ViewPager
            android:id = "@+id/banner_viewpager"
            android:layout_width = "fill_parent"
            android:layout_height = "fill_parent"/>

    <LinearLayout
            android:layout_width = "fill_parent"
            android:layout_height = "35dip"
            android:layout_gravity = "bottom"
            android:gravity = "center"
            android:orientation = "vertical">

        <LinearLayout
                android:id = "@+id/dot_linear"
                android:layout_width = "wrap_content"
                android:layout_height = "wrap_content"
                android:orientation = "horizontal"
                android:layout_marginTop = "3dip"
                android:gravity = "center">

        </LinearLayout>
    </LinearLayout>
</FrameLayout>

Этот макет представляет собой карусель и навигационные точки. После получения информации об изображении в коде вы можете отобразить и настроить реакцию на нажатие. Введите здесь описание изображения После вызова new ImageViewPagerDisplay() изображение начнёт вращаться.

11.bouncescrollview пакет

В основном это классы, используемые для решения конфликтов между ScrollView и ListView и другими.

12.dialog пакет

Здесь основное внимание уделяется наследованию CommonDialog или BaseDialog, а затем настройке положения и анимации диалогового окна. Остальные классы — это анимация. Вы узнаете, как это работает, когда используете его.

13.drawablecenter пакет

Этот класс используется для центрирования текста при установке свойств изображения.

14.dropdownmenu пакет

![Введите здесь описание изображения](http://git.oschina.net/uploads/images/2016/0315/104825_9bc1fe64_303698.png "dropdown")

15.edittext пакет

Это edittext. Когда вы вводите контент, справа появится изображение X. При нажатии содержимое edittext очищается. Если содержимое пусто, вы можете вызвать shakeAnimation, чтобы встряхнуть несколько раз.

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

16.gridpasswordview пакет

Представление пароля мобильного платёжного приложения Alipay. Состоит из 6 маленьких квадратов.

17.pullscrollview

Имеет эффект демпфирования при вытягивании вниз, который постепенно раскрывает изображение сверху. Ранние версии WeChat имели такой эффект.

18.rippleview

При щелчке появляется эффект водной ряби.

19.roundimageview

Круглое изображение.

20.viewpageranim

Анимация перехода viewpager, включая 3D-эффекты и эффекты затухания. Все они являются анимационными эффектами.

21.wheel

Макет с эффектом колеса прокрутки, существует несколько вариантов.

Другое

Лучше посмотрите исходный код самостоятельно...

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

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

Введение

Переписанная версия фреймворка andbase включает множество пользовательских элементов управления и некоторые общие функции. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

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

Участники

все

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

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