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

OSCHINA-MIRROR/chinasoft5_ohos-RxImagePicker

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

RxImagePicker

Проект

  • Проект: RxImagePicker.
  • Серия: openharmony, адаптация сторонних компонентов.
  • Функция: выбор фотографий из галереи.
  • Состояние переноса проекта: основная функциональность реализована.
  • Различия в вызовах: отсутствуют.
  • Версия разработки: SDK6, DevEco Studio2.2 Beta1.
  • Базовая версия: tag 2.5.6.

Эффект демонстрации

Изображение не приложено.

Установка

  1. В файле build.gradle в корневом каталоге проекта:
allprojects {
    repositories {
        maven {
            url 'https://s01.oss.sonatype.org/content/repositories/snapshots/'
        }
    }
}
  1. В файле build.gradle модуля entry:
dependencies {
    implementation('com.gitee.chinasoft_ohos:rximagepicker:0.0.1-SNAPSHOT')
    implementation('com.gitee.chinasoft_ohos:rximagepicker_support:0.0.1-SNAPSHOT')
    implementation('com.gitee.chinasoft_ohos:rximagepicker_support_zhihu:0.0.1-SNAPSHOT')
    implementation('com.gitee.chinasoft_ohos:rximagepicker_support_wechat:0.0.1-SNAPSHOT')
    ......  
 }

В версии SDK6 и DevEco Studio 2.2 Beta1 проект можно запустить напрямую. Если запуск невозможен, удалите файлы .gradle, .idea, build, gradle, build.gradle и создайте новый проект с соответствующей версией. Скопируйте файлы нового проекта в корневой каталог.

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

Объявите интерфейс и выполните базовую настройку:

Системный стиль
public interface MyImagePicker {

    @Gallery    // Открыть галерею для выбора фотографии
    Observable<Result> openGallery(Context context);

    @Camera     // Открыть камеру для съёмки
    Observable<Result> openCamera(Context context);
}
// В вашем FractionAbility используйте:
    // Перепишите onRequestPermissionsFromUserResult
    @Override
    public void onRequestPermissionsFromUserResult(int requestCode, String[] permissions, int[] grantResults) {
        AbilityUtils.onRequestPermissionsFromUserResult(this, requestCode, permissions, grantResults);

    }
    // onAbilityResult
    @Override
    protected void onAbilityResult(int requestCode, int resultCode, Intent resultData) {
        super.onAbilityResult(requestCode, resultCode, resultData);
        AbilityUtils.onAbilityResult(this, requestCode, resultCode, resultData);
    }
    Consumer<Result> consumer = new Consumer<Result>() {
            @Override
            public void accept(Result result) throws Throwable {
                
            }
        }
    // Откройте системную галерею по умолчанию
    RxImagePicker.create(MyImagePicker.class).openGallery(this)
            .subscribe(consumer);
    // Откройте камеру
    RxImagePicker.create(MyImagePicker.class).openCamera(this)
            .subscribe(consumer);
Стиль WeChat
    public interface WechatImagePicker {
        @Gallery(componentClazz = WechatImagePickerAbility.class,
                openAsFragment = false)
        Observable<Result> openGallery(Context context, ICustomPickerConfiguration config);
    
        @Camera
        Observable<Result> openCamera(Context context);
    }
// В вашем FractionAbility используйте
    @Override
        protected void onAbilityResult(int requestCode, int resultCode, Intent resultData) {
            super.onAbilityResult(requestCode, resultCode, resultData);
            AbilityUtils.onAbilityResult(this, requestCode, resultCode, resultData);
    }

   RxImagePicker  rxImagePicker = RxImagePicker
                    .create(WechatImagePicker.class);
    // Откройте камеру
    rxImagePicker.openCamera(this) .subscribe(onNext(), onError());
    // Откройте галерею
    rxImagePicker.openGallery(this,
                    new WechatConfigrationBuilder(MimeType.ofAll(), false)
                            .capture(true)
                            .maxSelectable(9)
                            .countable(true)
                            .spanCount(4)
                            .countable(false)
                            .build())
                    .subscribe(onNext(), onError());
Стиль Zhihu
    public interface ZhihuImagePicker {
        @Gallery(
                componentClazz = ZhihuImagePickerAbility.class,
                openAsFragment = false
        )
        Observable<Result> openGalleryAsNormal(Context context, ICustomPickerConfiguration iCustomPickerConfiguration);
    
        @Gallery(
                componentClazz = ZhihuImagePickerAbility.class,
                openAsFragment = false
        )
        Observable<Result> openGalleryAsDracula(Context context, ICustomPickerConfiguration iCustomPickerConfiguration);
    
        @Camera
        Observable<Result>
``` **openCamera(Context context);**

//在您的FractionAbility使用 @Override protected void onAbilityResult(int requestCode, int resultCode, Intent resultData) { super.onAbilityResult(requestCode, resultCode, resultData); AbilityUtils.onAbilityResult(this, requestCode, resultCode, resultData); } RxImagePicker rxImagePicker = RxImagePicker .create(ZhihuImagePicker.class); rxImagePicker.openCamera(this) .subscribe(fetchUriObserver()); //风格1 rxImagePicker.openGalleryAsNormal(this, new ZhihuConfigurationBuilder(MimeType.ofImage(), false) .capture(true) .maxSelectable(9) .countable(true) .spanCount(4) .theme(com.qingmei2.rximagepicker_extension_zhihu.ResourceTable.Pattern_Zhihu_Normal) .build()) .subscribe(fetchUriObserver()); //风格2 rxImagepicker.openGalleryAsDracula(this, new ZhihuConfigurationBuilder(MimeType.ofImage(), false) .capture(true) .spanCount(3) .maxSelectable(1) .theme(com.qingmei2.rximagepicker_extension_zhihu.ResourceTable.Pattern_Zhihu_Dracula) .build()) .subscribe(fetchUriObserver());```

自定义风格属性文件

Свойства файла примера


JSON атрибут Описание
colorPrimary Основной цвет темы альбома
colorPrimaryDark Дополнительный цвет темы альбома
album.dropdown.title.color Цвет шрифта заголовка выпадающего списка альбома
album.dropdown.count.color Цвет счётчика выпадающего списка альбома
album.dropdown.popup.bg.color Цвет фона выпадающего списка альбома
album.element.color Цвет стрелок
album.thumbnail.placeholder Цвет заполнителя эскизов
album.emptyView Изображение пустого представления
item.placeholder Заполнитель цвета изображения
item.checkCircle.backgroundColor Цвет фона выбранного круга
item.checkCircle.borderColor Цвет границы выбранного круга
page.bg Фон страницы
bottomToolbar.bg Фон нижней панели инструментов
bottomToolbar.preview.textColor Цвет текста предварительного просмотра (по выбору)
bottomToolbar.preview.textColor.disable Цвет текста предварительного просмотра по умолчанию
bottomToolbar.apply.textColor Цвет текста кнопки «Применить» (по выбору)
bottomToolbar.apply.textColor.disable Цвет текста кнопки «Применить» по умолчанию
preview.bottomToolbar.back.textColor Цвет текста кнопки возврата предварительного просмотра
preview.bottomToolbar.apply.textColor Цвет текста кнопки предварительного просмотра «Применить» (по выбору)
preview.bottomToolbar.apply.textColor.disable Цвет текста кнопки предварительного просмотра «Применить» по умолчанию
capture.textColor Цвет кнопки камеры

Тестовая информация

CodeCheck — код протестирован без исключений.

CloudTest — код протестирован без исключений.

Вирусное сканирование прошло успешно.

Текущая версия demo функционально не отличается от исходного компонента.

Версия итерации

  • 0.0.1-SNAPSHOT

Информация о правах и лицензиях

Copyright (c) 2018 qingmei2

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT ГАРАНТИЯ ЛЮБОГО РОДА, ЯВНАЯ ИЛИ ПОДРАЗУМЕВАЕМАЯ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ ГАРАНТИЕЙ ТОВАРНОГО КАЧЕСТВА, ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЁННОЙ ЦЕЛИ И ОТСУТСТВИЯ НАРУШЕНИЙ ПРАВ ТРЕТЬИХ СТОРОН. НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЕТЕНЗИИ, УЩЕРБ ИЛИ ДРУГИЕ ОБЯЗАТЕЛЬСТВА, ВОЗНИКАЮЩИЕ ИЗ ДОГОВОРНЫХ ОБЯЗАТЕЛЬСТВ, ДЕЛИКТА ИЛИ ИНЫМ СПОСОБОМ В СВЯЗИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ИСПОЛЬЗОВАНИЕМ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ИЛИ ИНЫМИ ДЕЙСТВИЯМИ В ОТНОШЕНИИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ.

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

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

Введение

Описание недоступно Развернуть Свернуть
Java
MIT
Отмена

Обновления (1)

все

Участники

все

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

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