AndBase: обзор функций фреймворка
Этот фреймворк был ранее скачан с официального сайта AndBase. В процессе работы над проектом в него постоянно добавлялись различные часто используемые инструменты, классы и элементы управления. Таким образом, он становился всё больше, а его функциональность расширялась. Постепенно он стал неотъемлемой частью процесса разработки проектов. После добавления зависимости многие функции стали доступны «из коробки», что значительно сократило объём дополнительной работы. Это делает использование фреймворка очень удобным.
В целом, это набор инструментов, которые делают разработчика всё более ленивым.
1. Библиотеки (libs)
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);
} даблбэктуэкзитпрессэд онс — это определённая булевская переменная.
Здесь в основном размещаются некоторые коды из блога csdn hongyang. Есть ImageLoader для загрузки изображений, макет с процентным соотношением (http://blog.csdn.net/lmj623565791/article/details/46767825), ImageView для жестов увеличения и уменьшения масштаба и т. д.
Здесь добавлено HttpUtil, можно обратиться к объяснению в http://blog.csdn.net/tianyaleixiaowu/article/details/50735991. Остальное — это сетевые запросы, которые поставляются с исходным фреймворком.
Поскольку Android 6 больше не поддерживает httpclient, позже я создал ещё один инструмент класса HttpTool на основе okhttp. Его использование аналогично использованию HttpUtil, за исключением того, что фреймворк был изменён на okhttp.
Классы в этом пакете довольно полезны и могут заменить AsyncTask. Здесь есть пул потоков, очередь и другие полезные классы. Для получения дополнительной информации о том, как их использовать, вы можете поискать AbTask в Интернете. Они подходят для обработки некоторых связанных с потоками задач.
Это просто смесь всего. Класс JudgeTime используется для отображения «несколько дней назад» или «несколько минут назад». TimeCountUtil используется для обратного отсчёта, например, при получении кода подтверждения по телефону. Другие часто используемые классы включают AbLogUtil, AbSharedUtil для использования sharedpreference и AbToastUtil. В пакете много классов, и вы можете примерно понять, для чего они используются, просто взглянув на их названия.
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() изображение начнёт вращаться.
В основном это классы, используемые для решения конфликтов между ScrollView и ListView и другими.
Здесь основное внимание уделяется наследованию CommonDialog или BaseDialog, а затем настройке положения и анимации диалогового окна. Остальные классы — это анимация. Вы узнаете, как это работает, когда используете его.
Этот класс используется для центрирования текста при установке свойств изображения.

Это edittext. Когда вы вводите контент, справа появится изображение X. При нажатии содержимое edittext очищается. Если содержимое пусто, вы можете вызвать shakeAnimation, чтобы встряхнуть несколько раз.
Представление пароля мобильного платёжного приложения Alipay. Состоит из 6 маленьких квадратов.
Имеет эффект демпфирования при вытягивании вниз, который постепенно раскрывает изображение сверху. Ранние версии WeChat имели такой эффект.
При щелчке появляется эффект водной ряби.
Круглое изображение.
Анимация перехода viewpager, включая 3D-эффекты и эффекты затухания. Все они являются анимационными эффектами.
Макет с эффектом колеса прокрутки, существует несколько вариантов.
Лучше посмотрите исходный код самостоятельно...
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )