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

OSCHINA-MIRROR/VeiZhang-BaseToolsLibrary

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
README.md 43 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 29.11.2024 03:41 6e42689

Android-адаптеры и общие инструменты

  • Android-адаптеры для ListView, GridView, RecyclerView и других, поддерживающие различные типы макетов.
  • Общие инструменты для Android.
allprojects {
    repositories {
        /** Github packages **/
        maven {
            url = "https://maven.pkg.github.com/VeiZhang/GitHubPackages-Android"
            credentials {
                // Введите свои учётные данные и личный токен (требуется разрешение на чтение пакетов)
                // Можно поместить в файл gradle.properties или local.properties в корне проекта
                username = getPropertyValue("GITHUB_USER") ?: project.properties['GITHUB_USER']
                password = getPropertyValue("GITHUB_READ_TOKEN") ?: project.properties['GITHUB_READ_TOKEN']
            }
        }
    }
}

Содержание

Использование в Android Studio

Добавьте удалённый репозиторий jCenter в build.gradle модуля:

dependencies {
    compile 'com.excellence:basetools:_latestVersion'
}

Или напрямую добавьте локальную библиотеку:

compile project(':basetoolslibrary')

Примечание

При использовании адаптера DataBinding не забудьте включить конфигурацию:

android {
    dataBinding {
        enabled true
    }
}

Приглашаем к сотрудничеству

![icon_adapter][icon_adapter]

![icon_common_adapter][icon_common_adapter]

![icon_multi_adapter][icon_multi_adaptor]

CommonAdapter

Адаптеры для ListView и GridView

Пример: [CommonAdapterActivity][CommonAdapterActivity]

// Создание класса адаптера, наследуемого от CommonAdapter
private class AppGridAdapter extends CommonAdapter<ResolveInfo>
{
    public AppGridAdapter(List<ResolveInfo> data, int layoutId)
    {
        super(data, layoutId);
    }

    @Override
    public void convert(ViewHolder viewHolder, ResolveInfo item, int position)
    {
        ImageView iconView = viewHolder.getView(android.R.id.icon);
        iconView.setImageDrawable(item.loadIcon(mPackageManager));
        viewHolder.setText(android.R.id.text1, item.loadLabel(mPackageManager).toString());
    }
}
// Вспомогательные методы ViewHolder
public <T extends View> T getView(int viewId);                                    // Используется для получения дочерних элементов Item, параметр — идентификатор элемента
public ViewHolder setText(int viewId, int strId);                                 // Используется для установки текста, параметры — идентификатор элемента и идентификатор строки
public ViewHolder setBackgroundResource(int viewId, int resId);                   // Используется для установки фонового изображения, параметры — идентификатор элемента и идентификатор ресурса
public ViewHolder setImageResource(int viewId, int resId);                        // Используется для установки ресурса ImageView, параметры — идентификатор элемента и идентификатор ресурса
public ViewHolder setOnClickListener(int viewId, View.OnClickListener listener);  // Используется для прослушивания событий щелчка, параметры — идентификатор элемента и прослушиватель
*
*
*
// Можно расширить другие методы
// Обновить адаптер
adapter.notifyNewData(data);

Многомакетные адаптеры для ListView и GridView

Пример: [MultiItemAdapterActivity][MultiItemAdapterActivity]

// Многомакетный адаптер
private class ChatAdapter extends MultiItemTypeAdapter<People>
{
    public ChatAdapter(List<People> messages)
    {
        super(messages);
        addItemViewDelegate(new ComputerDelegate());
        addItemViewDelegate(new BlueDelegate());
        addItemViewDelegate(new PurpleDelegate());
    }
}

// Различные макеты представлений
private class ComputerDelegate implements ItemViewDelegate<People>
{
    @Override
    public int getItemViewLayoutId()
    {
        return R.layout.item_computer;
    }

    @Override
    public boolean isForViewType(People item, int position)
    {
        return item instanceof ComputerData;
    }

    @Override
``` Вот перевод текста на русский язык:

void convert(ViewHolder viewHolder, People item, int position) { viewHolder.setText(R.id.computer_text, item.getMsg()); } }


## CommonBindingAdapter
### Открытие DataBinding, ListView и GridView — универсальный адаптер
Пример: CommonBindingAdapterActivity

// Открытие DataBinding, создание универсального адаптера для ListView и GridView CommonBindingAdapter adapter = new CommonBindingAdapter<>(mFlowers, R.layout.item_flower, BR.flower); // Установка адаптера, аналогично ListView.setAdapter() или GridView.setAdapter() mBinding.setAdapter(adapter);


### Открытие DataBinding, ListView, GridView — многоформатный универсальный адаптер
Пример: MultiItemTypeBindingAdapterActivity

// Использование аналогично предыдущему примеру, основная реализация интерфейса ViewDelegate для представления макета MultiItemTypeBindingAdapter adapter = new MultiItemTypeBindingAdapter<>(mFlowers); adapter.addItemViewDelegate(new RoseViewDelegate()); adapter.addItemViewDelegate(new TulipViewDelegate()); mBinding.setAdapter(adapter);


## BaseRecyclerAdapter
### Универсальный адаптер RecyclerView
Пример: RecyclerAdapterActivity

// Создание класса адаптера, наследуемого от BaseRecyclerAdapter private class AppRecyclerAdapter extends BaseRecyclerAdapter { private PackageManager mPackageManager = null;

public AppRecyclerAdapter(List<ResolveInfo> data, int layoutId) {
    super(data, layoutId);
    mPackageManager = getPackageManager();
}

@Override
public void convert(RecyclerViewHolder viewHolder, ResolveInfo item, int position) {
    viewHolder.setText(android.R.id.text1, item.loadLabel(mPackageManager));
    viewHolder.setImageDrawable(android.R.id.icon, item.loadIcon(mPackageManager));
}

}


### Многоформатный универсальный адаптер RecyclerView
Пример: MultiItemRecyclerAdapterActivity

// Многоформатный адаптер RecyclerView private class WarAdapter extends MultiItemTypeRecyclerAdapter { public WarAdapter(List data) { super(data); addItemViewDelegate(new ComputerRecyclerDelegate()); addItemViewDelegate(new BlueRecyclerDelegate()); addItemViewDelegate(new PurpleRecyclerDelegate()); } }

// Различные макеты представления private class ComputerRecyclerDelegate implements ItemViewDelegate { @Override public int getItemViewLayoutId() { return R.layout.item_computer; }

@Override
public boolean isForViewType(People item, int position) {
    return item instanceof ComputerData;
}

@Override
public void convert(RecyclerViewHolder viewHolder, People item, int position) {
    viewHolder.setText(R.id.computer_text, item.getMsg());
}

}


## BaseRecyclerBindingAdapter
### Открытие DataBinding, RecyclerView — универсальный адаптер
Пример: BaseRecyclerBindingAdapterActivity

// Непосредственное создание BaseRecyclerBindingAdapter BaseRecyclerBindingAdapter adapter = new BaseRecyclerBindingAdapter<>(mFlowers, R.layout.item_flower, BR.flower); // Настройка адаптера, аналогична RecyclerView.setAdapter() mBinding.setAdapter(adapter); // Обратите внимание на настройку LayoutManager, аналогично RecyclerView.setLayoutManager() mBinding.setLayoutManager(new LinearLayoutManager(this));


### Открытие DataBinding, RecyclerView — многоформатный универсальный адаптер
Пример: MultiItemTypeBindingRecyclerAdapterActivity

// Аналогично предыдущему примеру, основное использование интерфейса ViewDelegate для реализации макета представления MultiItemTypeBindingRecyclerAdapter adapter = new MultiItemTypeBindingRecyclerAdapter<>(mFlowers); adapter.addItemViewDelegate(new RoseViewDelegate()); adapter.addItemViewDelegate(new TulipViewDelegate()); mBinding.setAdapter(adapter); mBinding.setLayoutManager(new LinearLayoutManager(this));


## BasePagerAdapter
### ViewPager — универсальный адаптер
Пример: ViewPagerAdapterActivity Вот перевод текста на русский язык:

```java
private class NumAdapter extends BasePagerAdapter {

    public NumAdapter(int pageCount) {
        super(pageCount);
    }

    @Override
    protected View loadView(Context context, int pageIndex) {
        // 加载每页
        TextView textView = new TextView(context);
        textView.setText(String.valueOf(pageIndex * mNumScale));
        textView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mNumScale *= 10;
                mPageCount += 1;
                // 刷新每页
                mAdapter.notifyNewData(mPageCount);
            }
        });
        return textView;
    }
}

Utils

权限

<uses-permission android:name="android.permission.GET_TASKS"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android=«android.permission.ACCESS_NETWORK_STATE»/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

常用工具类

  • Activity相关→[ActivityUtils.kt][ActivityUtils]
startAnotherActivity   : Activity跳转
setActivityWindowAlpha : 设置Activity窗口透明值
isActivityTopStack     : 判断Activity是否在栈顶
getLauncherActivity    : 获取某应用入口Activity
  • 算法相关→[AlgorithmUtils.java][AlgorithmUtils]
getMD5   : 生成MD5
checkMD5 : 检测MD5
  • AlphaUtils相关→[AlphaUtils.kt][AlphaUtils]
setAlpha : 设置Window透明度
setAlpha : 设置Activity的Window透明度
setAlpha : 设置Dialog的Window透明ность
setAlpha : 设置DialogFragment的Window透明性
  • 补间动画相关→[AnimationUtils.kt][AnimationUtils]
scaleView     : 放大缩小动画
translateView : 平移动画
alphaView     : 透明度动画
  • 属性动画相关→[AnimatorUtils.kt][AnimatorUtils]
marginLeftTranslateIn  : 相邻View联动
marginLeftTranslateOut : 相邻View联动
marginUpTranslateIn    : 相邻View联动
marginUpTranslateOut   : 相邻View联动
marginTranslateIn      : 相邻View联动
marginTranslateOut     : 相邻View联动
marginByLayout         : 在原基础上,移动View的外边距
marginToLayout         : 设置View的外边距
heightToLayout         : 变化View的高度动画
scaleView              : 放大缩小动画
translateView          : 平移动画
alphaView              : 透明度动画
  • 应用相关→[AppUtils.kt][AppUtils]
getInstalledApps       : 获取安装的全部应用
getSystemInstalledApps : 获取安装的系统应用
getUserInstalledApps   : 获取安装的第三方应用
getRunningApps         : 获取正在运行的应用
getPermissionList      : 获取某应用的所有权限
checkPermission        : 检测某应用是否有某权限
getAppVersionName      : 获取当前应用版本名
getAppVersionCode      : 获取当前应用版本号
getAppSize             : 获取当前应用大小
getAppTime             : 获取当前应用安装时间
getAppPath             : 获取当前应用路径
getAPKFileSignature    : 获取apk文件的签名
getPackageSignature    : 获取某安装应用的签名
isAppExist             : 判断应用是否存在
isAppDebug             : 判断当前应用是否是Debug版本
getMaxMemory           : 当前应用分配的最大内存
getTotalMemory         : 当前应用分配的总内存
getFreeMemory          : 当前应用分配的剩余内存
  • 音频相关→[AudioUtils.kt][AudioUtils]
getMaxVolume : 获取最大音量
getMinVolume : 获取最小音量
getVolume    : 获取音量
setVolume    : 设置音量
adjustVolume : 调整音量
  • 广播相关→[BroadcastUtils.kt][BroadcastUtils]
registerMountAction        : USB广播
registerScreenAction       : 屏幕熄亮广播
registerPackageAction      : 安装卸载广播
registerNetworkStateAction : 网络状态广播
registerBootAction         : 开机广播
  • 关闭相关→[CloseUtils.kt][CloseUtils]
closeIO        : 关闭IO
closeIOQuietly : 安静关闭IO
  • 关闭相关→[CollectionUtils.kt][CollectionUtils]
removeEmptyElement : 清除集合里的空元素
listEquals         : 比较两个列表元素对象是否一致
listContentEquals  : 比较两个列表元素内容是否一致
  • 转换相关→[ConvertUtils.kt][ConvertUtils]
bytes2Short               : byte转short
shortToByte               : short转byte
byte2BinStr               : byte转二进制
byte2BinStr               : byte数组转二进制
str2BinStr                : 字符串转二进制字符串
bytes2HexString           : byte数组转16进制字符串
hexString2Bytes
``` **16-битная строка в массив байтов**

* string2HexString: строка в 16-битную строку.
* hexString2String: 16-битная строка в строку.
* string2Bytes: строка в массив байтов.
* bytes2String: массив байтов в строку.
* byte2Int: массив байтов в знаковое int.
* int2Byte: int в 4-байтовый массив.
* uintbyte2long: четырёхбайтовый массив без знака в long.
* inputStream2OutputStream: inputStream в outputStream.
* inputStream2Bytes: inputStream в байты.
* inputStream2String: inputStream в строку.
* inputStream2StringBuilder: inputStream в StringBuilder.

**Конфигурация хранилища → [DBUtils.kt][DBUtils]**

* init: инициализация, установка имени файла для хранения.
* contains: проверка наличия ключа и значения.
* setSetting: сохранение конфигурации.
* getString: чтение конфигурации строки.
* getBoolean: чтение конфигурации Boolean.
* getInt: чтение конфигурации int.
* getLong: чтение конфигурации long.
* getFloat: чтение конфигурации float.
* getStringSet: чтение конфигурации Set<String>.
* remove: удаление конфигурации.
* clear: очистка конфигурации.

**Разрешение экрана → [DensityUtils.kt][DensityUtils]**

* getDensity: получение текущего разрешения экрана.
* getScaleDensity: получение текущей плотности текста.
* getScreenWidth: получение ширины экрана.
* getScreenHeight: получение высоты экрана.
* getScreenSize: получение размера экрана (ширина и высота).
* dp2px: преобразование dp в px.
* px2dp: преобразование px в dp.
* sp2px: преобразование sp в px.
* px2sp: преобразование px в sp.

**Устройство → [DeviceUtils.kt][DeviceUtils]**

* getIMEI: получение IMEI.
* getIMSI: получение IMSI.
* getPhone: получение номера телефона.
* getSIM: получение серийного номера SIM-карты.
* getSimCountry: получение страны SIM-карты.
* getSimOperator: получение оператора SIM-карты.
* getSimOperatorName: получение имени оператора SIM-карты.
* getSimState: получение состояния SIM-карты.

**Пустота → [EmptyUtils.kt][EmptyUtils]**

* isEmpty: проверка объекта на пустоту.
* isNotEmpty: проверка объекта непустоту.

**Шифрование и дешифрование → [EncryptUtils.java][EncryptUtils]**

* hashTemplate: шаблон хеширования.
* encryptMD5: шифрование MD5.
* encryptDES: шифрование DES.
* decryptDES: расшифровка DES.
* encrypt3DES: шифрование 3DES.
* decrypt3DES: расшифровка 3DES.
* encryptAES: шифрование AES.
* decryptAES: расшифровка AES.
* rsaTemplate: шаблон RSA.
* encryptRSA: шифрование RSA.
* printException: печать информации об исключении.

**Исключения → [ExceptionUtils.kt][ExceptionUtils]**

* printException: вывод информации об исключении в виде строки.

**Поток файлов → [FileIOUtils.kt][FileIOUtils]**

* writeFile: запись строки, массива байтов или входного потока в файл.
* readFile2Bytes: чтение файла или входного потока как массива байтов.
* readFile2String: чтение файла или входного потока как строки.
* copyFile: копирование файла.

**Файлы → [FileUtils.kt][FileUtils]**

* createNewFile: создание файла.
* deleteFile: удаление файла.
* mkDir: создание каталога.
* deleteDir: удаление каталога.
* deletePostfixFiles: удаление файлов с определённым расширением в каталоге.
* formatFileSize: форматирование размера файла.
* getAvailableSize: получение используемого размера файла.
* getTotalSize: получение общего размера файла.
* getFilesSize: обход каталога и получение размера файлов.
* getFileSize: получение размера файла.
* getDirSize: обход директории и получение её размера.
* getDirFreeSpace: получение свободного пространства в директории.
* getDirTotalSpace: получение общего пространства в директории.
* getDirUsableSpace: получение доступного пространства в директории.
* chmod: изменение прав доступа к каталогу или файлу.
* isFileExists: проверка существования файла или каталога.
* getFileLastModified: получение времени последнего изменения файла.
* getFileMd5: получение MD5-значения файла.

**Handler → [HandlerUtils.java][HandlerUtils]**

* HandlerHolder: использование обязательного чтения.

**HTTP → [HttpUtils.kt][HttpUtils]**

* checkURL: проверка действительного URL.
* checkHttpURL: проверка HTTP или HTTPS, добавление префикса http:// при отсутствии.
* appendURLPath: объединение URL-пути.
* isUrlExists: проверка доступности ссылки по способу доступа.
* convertHttpUrl: преобразование символов китайского языка в ссылке.
* convertInputStream: преобразование потока по типу.
* setConnectParam: установка параметров запроса.
* printHeader: печать всех заголовков запросов.
* getHeader: получение конкретного заголовка запроса.

**Изображения → [ImageUtils.kt][ImageUtils]**

* resource2Drawable: ресурс в Drawable.
* resource2Bitmap: ресурс в Bitmap.
* drawable2Bitmap: Drawable в Bitmap.
* bitmap2Drawable: Bitmap в Drawable.
* view2Bitmap: View в Bitmap.
* shotActivity: снимок Activity.
* createBitmap: создание пустого Bitmap.
* addBitmapShadows: добавление теней к Bitmap.
* zoomImg: уменьшение изображения с сохранением пропорций.
* setRendScriptCacheDir: настройка высокого размытия, может привести к сбою приложения на Android 7.0.

**Общие намерения → [IntentUtils.kt][IntentUtils]**

* isIntentAvailable: проверка наличия Intent.
* startIntent: запуск Intent. **getSettingIntent**: переход в настройки.
**getWiFiIntent**: неявное включение Wi-Fi.
**getDirectWiFiIntent**: прямое включение Wi-Fi. 
**getRoamingIntent**: переход к настройкам мобильной сети.
**getPermissionIntent**: открытие настроек разрешений.
**getLocationIntent**: включение настроек геолокации.
**getBluetoothIntent**: включение настроек Bluetooth.
**getLocaleIntent**: включение языковых настроек.
**getAppIntent**: переход на экран со списком приложений.
**getAllAppIntent**: переход на экран с полным списком приложений.
**getInstalledAppIntent**: переход на экран установленных приложений.
**getStorageIntent**: включение настроек хранилища.
**getAccessibilityIntent**: включение вспомогательных настроек.
**getSearchIntent**: переход к поисковым настройкам.
**getInputMethodIntent**: переход к настройкам метода ввода.
**getInstallIntent**: установка приложения.
**getUninstallIntent**: удаление приложения.
**getShareTextIntent**: поделиться текстом.
**getShareImageIntent**: поделиться изображением.
**getDialIntent**: перейти к экрану набора номера.
**getCallIntent**: совершить звонок.
**getSmsIntent**: перейти на экран коротких сообщений.
**getSendSmsIntent**: отправить короткое сообщение.
**getEmailIntent**: отправка электронной почты.
**getCaptureIntent**: открыть камеру.
**getVideoIntent**: воспроизвести локальное видео.
**getNetVideoIntent**: воспроизвести сетевое видео.
**getAudioIntent**: воспроизвести местную музыку.

* * *

**hideSoftInput**: скрыть программную клавиатуру.
**showSoftInput**: показать программную клавиатуру.
**toggleSoftInput**: если клавиатура уже отображается, скрыть её, иначе — показать.
**clickBlankArea2HideSoftInput**: нажать на пустую область экрана, чтобы скрыть программную клавиатуру.

* * *

**dispatchKeyEvent**: управление скоростью нажатия клавиш.

* * *

**listKeyUp**: цикл вверх.
**listKeyDown**: цикл вниз.
**listKeyLeft**: цикл влево.
**listKeyRight**: цикл вправо.
**listPageUp**: цикл перелистывания вверх.
**listPageDown**: цикл перелистывания вниз.

* * *

**TIMESTAMP_LIVE_DATA**: время в секундах.
**MILL_TIMESTAMP_LIVE_DATA**: время в миллисекундах.
**timer**: таймер.

* * *

**gcd**: наибольший общий делитель.
**fraction**: деление.

* * *

**getKey**: чтение ключа мультимедийной информации.
**getAlbum**: чтение альбома мультимедийной информации.
**getArtist**: чтение исполнителя мультимедийной информации.
**getAuthor**: чтение автора мультимедийной информации.
**getDate**: чтение даты мультимедийной информации.
**getGenre**: чтение жанра мультимедийной информации.
**getTitle**: чтение названия мультимедийной информации.
**getYear**: чтение года мультимедийной информации.
**getDuration**: чтение длительности мультимедийной информации.
**getMimeType**: чтение типа мультимедийной информации.
**getHasAudio**: проверка наличия аудио в мультимедийной информации.
**getHasVideo**: проверка наличия видео в мультимедийной информации.
**getWidth**: чтение ширины мультимедийной информации.
**getHeight**: чтение высоты мультимедийной информации.
**getBitrate**: чтение битрейта мультимедийной информации.

* * *

**getActiveNetworkInfo**: получение активной сетевой информации.
**isConnected**: проверка подключения к сети.
**isAvailableByPing**: определение доступности сети по ping.
**isMobileDataEnabled**: проверка доступности мобильной передачи данных.
**setMobileDataEnabled**: включить или отключить мобильную передачу данных (отбрасывает недоступные).
**is4G**: проверка 4G-сети.
**isWiFiEnabled**: проверка включения Wi-Fi.
**setWiFiEnabled**: включить или выключить Wi-Fi.
**isEthConnected**: проверка соединения Ethernet.
**isEthAvailable**: проверка доступности Ethernet.
**isWiFiConnected**: проверка соединения Wi-Fi.
**isWiFiAvailable**: проверка доступности Wi-Fi.
**isWiFiAvailableByPing**: проверка доступности Wi-Fi по ping.
**getNetworkOperatorName**: получение имени сетевого оператора.
**getNetworkType**: получение текущего типа сети.
**getIPAddress**: получение IP-адреса сети.
**getDomainAddress**: получение адреса домена по IP.
**readMac**: чтение MAC-адреса: приоритет Eth, если Eth пуст, то WiFi.
**getMac**: получение MAC-адреса: использование Eth при наличии, в противном случае — WiFi.
**getWiredMac**: получение проводного MAC-адреса.
**getWirelessMac**: получение беспроводного MAC-адреса.
**formatTcpSpeed**: форматирование скорости TCP.
**formatNetSpeed**: форматирование сетевой скорости.

* * *

**number**: анализ числовых значений/оценок.
**timestamp**: анализ текстовых значений времени.
**year**: анализ текстового значения года.

* * *

**getRootPath**: получение корневого пути.
**getDataPath**: получение пути к данным.
**getDownloadCachePath**: получение пути к кэшу загрузок.
**getInternalAppDataPath**: получение внутреннего пути к данным приложения.
**getInternalAppCodeCacheDir**: получение внутреннего пути к кэш-коду приложения.
**getInternalAppCachePath**: получение внутреннего пути к кэшу приложения.
**getInternalAppDbsPath**: получение внутреннего пути к базам данных приложения.
**getInternalAppDbPath**: получение внутреннего пути к базе данных приложения.
**getInternalAppFilesPath**: получение внутреннего пути к файлам приложения.
**getInternalAppSpPath**: получение внутреннего пути к SP приложения.
**getInternalAppNoBackupFilesPath**: получение внутреннего пути к незарезервированным файлам приложения.
**getExternalStoragePath**: получение внешнего пути к хранилищу.
**getExternalMusicPath**: получение внешнего музыкального пути.
**getExternalPodcastsPath**: получение внешнего подкастового пути.
**getExternalRingtonesPath**: получение внешнего рингтонного пути.
**getExternalAlarmsPath**: получение внешнего аварийного пути.
**getExternalNotificationsPath**: получение внешнего уведомительного пути.
**getExternalPicturesPath**: получение внешнего изобразительного пути.
**getExternalMoviesPath**: получение внешнего киношного пути.
**getExternalDownloadsPath**: получение внешнего пути загрузок. **Текст запроса на русском языке:**

*Получение путей к различным типам данных в приложении:*

- getExternalDcimPath: получение пути к изображениям с внешней цифровой камеры.

- getExternalDocumentsPath: получение пути к документам на внешнем носителе.

- getExternalAppDataPath: получение пути к данным приложения на внешнем накопителе.

- getExternalAppCachePath: получение пути к кэшу приложения на внешнем устройстве.

- getExternalAppFilesPath: получение пути к файлам приложения на внешнем носителе.

- getExternalAppMusicPath: получение пути к музыке приложения на внешнем устройстве.

- getExternalAppPodcastsPath: получение пути к подкастам приложения на внешнем накопителе.

- getExternalAppRingtonesPath: получение пути к рингтонам приложения на внешнем устройстве.

- getExternalAppAlarmsPath: получение пути к сигналам будильника приложения на внешнем накопителе.

- getExternalAppNotificationsPath: получение пути к уведомлениям приложения на внешнем устройстве.

- getExternalAppPicturesPath: получение пути к картинкам приложения на внешнем носителе.

- getExternalAppMoviesPath: получение пути к фильмам приложения на внешнем устройстве.

- getExternalAppDownloadPath: получение пути к загрузкам приложения на внешнем накопителе.

- getExternalAppDcimPath: получение пути к фотографиям с внешней камеры приложения.

- getExternalAppDocumentsPath: получение пути к документам приложения на внешнем устройстве.

- getExternalAppObbPath: получение пути к OBB-данным приложения на внешнем накопителе. 

**Также в запросе есть фрагменты кода на разных языках программирования, которые не были переведены.** Данный текст представляет собой фрагмент исходного кода на языке Kotlin. 

В тексте содержатся объявления функций, которые связаны с преобразованием времени и дат, а также с наблюдением за макетом View и использованием WebView. Кроме того, в тексте упоминаются классы WeakHandler и HanziToPinyin.

Также в тексте есть информация о библиотеке BaseToolsLibrary, её версиях и авторах.

К сожалению, без контекста невозможно точно определить, что делает каждая функция и класс, поэтому перевод может быть неполным или неточным. Вот перевод текста:

string2Millisec : преобразование строки времени в миллисекунды date2String : преобразование Date в строку времени getTimeSpan : получение разницы между двумя временами getNowTimeMillis : получение текущего времени в миллисекундах getNowTimeDate : получение текущей даты getNowTimeString : получение текущего времени в виде строки getTimeSpanByNow : получение разницы между текущим временем и другим временем isSameDay : проверка, является ли время тем же днём isToday : проверка, является ли время сегодняшним getTodayZero : получение нулевого значения текущего дня isLeapYear : проверка, является ли год високосным getWeek : получение номера недели getWeekOfMonth : получение номера недели месяца getWeekOfYear : получение номера недели года getChineseZodiac : получение знака зодиака по китайскому календарю getZodiac : получение знака зодиака is24HoursFormat : проверка формата времени на 24-часовой формат seconds2String : преобразование секунд в формат «минуты: секунды» в виде строки milliSeconds2String : преобразование миллисекунд в формат «минуты: секунды» в виде строки seconds2HourString : преобразование секунд в формат «часы: минуты: секунды» в виде строки milliSeconds2HourString : преобразование миллисекунд в формат «часы: минуты: секунды» в виде строки createSimpleDateFormat : создание формата времени


> - **View相关→[ViewUtils.kt][ViewUtils]**

observeViewLayout : наблюдение за завершением отрисовки макета observeViewLayoutForever : наблюдение за завершением отрисовки макета навсегда


> - **WebView相关→[WebViewUtils.java][WebViewUtils]**

callOnWebviewThread : отправка команды JS callJavaScript : отправка команды JS hookWebView : обход проверки UID системы для приложения с правами root


## Assist
> - **WeakHandler转载→[WeakHandler.java][WeakHandler]**

WeakHandler : описание использования, оптимизация производительности, предотвращение утечек памяти


> - **HanziToPinyin转载→[HanziToPinyin.java][HanziToPinyin]**

HanziToPinyin : класс для преобразования китайских иероглифов в пиньинь на Android


## Версия обновления
|            версия          |                              описание                               |
|------------------------- | -------------------------------------------------------------- |
| [1.3.1][BaseToolsV1.3.1] | добавлены инструменты и методы **2022-05-27** |
| [1.3.0][BaseToolsV1.3.0] | переведён на Kotlin **2022-04-15** |
| [1.2.9][BaseToolsV1.2.9] | добавлен ListAdapter, дополнены некоторые инструменты **2020-08-24** |
| [1.2.8][BaseToolsV1.2.8] | совместимость с AndroidX **2020-04-09** |
| [1.2.7][BaseToolsV1.2.7] | добавлены новые инструменты **2019-10-15** |
| [1.2.6][BaseToolsV1.2.6] | добавлены новые инструменты, оптимизирован адаптер **2018-9-13** |
| [1.2.5][BaseToolsV1.2.5] | оптимизированы события наблюдения RecyclerView, исправлены ошибки в нескольких менеджерах компоновки **2018-3-7** |
| [1.2.4][BaseToolsV1.2.4] | добавлено: включено DataBinding, ListView, GridView, RecyclerView универсальный адаптер, некоторые вспомогательные методы  **2017-10-18** |
| [1.2.3][BaseToolsV1.2.3] | добавлен универсальный адаптер ViewPager; расширены инструменты: файлы, ресурсы, рефлексия, клавиатура и т. д.  **2017-7-21** |
| [1.2.2][BaseToolsV1.2.2] | расширено хранилище конфигурационных файлов  **2017-5-12** |
| [1.2.1][BaseToolsV1.2.1] | поддержка универсальных адаптеров для различных макетов  **2017-4-20** |
| [1.2.0][BaseToolsV1.2.0] | добавлены сетевые инструменты, инструменты для пиньиня, инструменты для обработки исключений и другие **2017-4-13** |
| [1.1.0][BaseToolsV1.1.0] | в Utils добавлены некоторые общие инструменты: приложение, база данных, разрешение экрана, файл, регулярное выражение, команда, время и т.д.  **2017-2-23** |
| [1.0.0][BaseToolsV1.0.0] | создан ListView, GridView, RecyclerView универсальный адаптер и некоторые вспомогательные методы **2016-12-20** | **Конвертация данных**: ConvertUtils
**Работа с базой данных**: DBUtils
**Плотность отображения**: DensityUtils
**Информация об устройстве**: DeviceUtils
**Проверка на пустоту**: EmptyUtils
**Шифрование и расшифровка данных**: EncryptUtils
**Обработка исключений**: ExceptionUtils
**Файловый ввод-вывод**: FileIOUtils
**Операции с файлами**: FileUtils
**Обработчики событий**: HandlerUtils
**HTTP-запросы**: HttpUtils
**Изображения**: ImageUtils
**Намерения**: IntentUtils
**Клавиатура**: KeyboardUtils
**Контроллер клавиш**: KeyController
**События клавиатуры**: KeyEventUtils
**LiveData**: LiveDataUtils
**Математические операции**: MathUtils
**Мультимедиа**: MediaUtils
**Сеть**: NetworkUtils
**Парсинг**: ParseUtils
**Путь к файлу**: PathUtils
**Пиньинь**: PinyinUtils
**Рефлексия**: ReflectUtils
**Регулярные выражения**: RegexUtils
**Ресурсы**: ResourceUtils

Опубликовать ( 0 )

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

1
https://api.gitlife.ru/oschina-mirror/VeiZhang-BaseToolsLibrary.git
git@api.gitlife.ru:oschina-mirror/VeiZhang-BaseToolsLibrary.git
oschina-mirror
VeiZhang-BaseToolsLibrary
VeiZhang-BaseToolsLibrary
master