RxImagePicker
Изображение не приложено.
allprojects {
repositories {
maven {
url 'https://s01.oss.sonatype.org/content/repositories/snapshots/'
}
}
}
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);
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());
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 функционально не отличается от исходного компонента.
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 )