TedImagePicker is simple/beautiful/smart image picker
Language:
Kotlin
Owner:
Contributors:
License:
Apache License 2.0
Description:
TedImagePicker 
TedImagePicker is simple/beautiful/smart image picker
- Support Image/Video
- Support Single/Multi select
- Support more configuration option
Image Select | Select Album | Scroller |
---|---|---|
![]() |
![]() |
![]() |
Demo
Image Select | Select Album | Scroller |
---|---|---|
![]() |
![]() |
![]() |
Setup
Gradle
repositories { google() mavenCentral() } dependencies { implementation 'io.github.ParkSangGwon:tedimagepicker:x.y.z' //implementation 'io.github.ParkSangGwon:tedimagepicker:1.1.10' }
If you think this library is useful, please press star button at upside.
How to use
1.Enable databinding
- TedImagePicker use databinding
- Set enable databinding in your app
build.gradle
dataBinding { enabled = true }
2.Start TedImagePicker/TedRxImagePicker
- TedImagePicker support
Listener
andRxJava
style
Listener
Single image
- Kotlin
TedImagePicker.with(this) .start { uri -> showSingleImage(uri) }
- Java
TedImagePicker.with(this) .start(new OnSelectedListener() { @Override public void onSelected(@NotNull Uri uri) { showSingleImage(uri); } }); TedImagePicker.with(this) .start(uri -> { showSingleImage(uri); });
Multi image
- Kotlin
TedImagePicker.with(this) .startMultiImage { uriList -> showMultiImage(uriList) }
- Java
TedImagePicker.with(this) .startMultiImage(new OnMultiSelectedListener() { @Override public void onSelected(@NotNull List<? extends Uri> uriList) { showMultiImage(uriList); } }); TedImagePicker.with(this) .startMultiImage(uriList -> { showMultiImage(uriList); });
RxJava
Single image
TedRxImagePicker.with(this) .start() .subscribe({ uri -> }, Throwable::printStackTrace)
Multi image
TedRxImagePicker.with(this) .startMultiImage() .subscribe({ uriList -> }, Throwable::printStackTrace)
Customize
- You can customize what you want
Function
Common
Function | Description |
---|---|
mediaType(MediaType) |
MediaType.IMAGE / MediaType.VIDEO |
cameraTileBackground(R.color.xxx) |
camera Tile Background Color |
cameraTileImage(R.drawable.xxx) |
camera tile image |
showCameraTile(Boolean) default true |
show camera tile |
scrollIndicatorDateFormat(String) (default: YYYY.MM) |
Format of date on scroll indicator |
showTitle(Boolean)(default: true) |
Show title |
title(String or R.string.xxx) (default: 'Select Image','사진 선택') |
title |
backButton(R.drawable.xxx) |
back button |
zoomIndicator(Boolean) (default: true) |
zoom indicator |
image() |
image |
video() |
video |
imageCountTextFormat(String) (default: %s) : %s장 , Count: %s |
image count text format |
savedDirectoryName(String) |
saved directory name from take picture using camera |
startAnimation(Int, Int) |
start animation |
finishAnimation(Int, Int) |
finish animation |
errorListener() |
error listener for error |
cancelListener() |
cancel listener |
- Change picker primary color : override color name in your colors.xml
<color name="ted_image_picker_primary">#your_color_code</color> <color name="ted_image_picker_primary_pressed">#your_color_code</color>
Multi Select
Method | Description |
---|---|
selectedUri(List<Uri>) |
selected uri |
buttonGravity(ButtonGravity) |
You can change done button location top or bottom |
buttonText(String or R.string.xxx) (default: 'Done','완료') |
you can change done button text |
buttonBackground(R.drawable.xxx) (default: Blue Background) |
you can change done button background color |
buttonTextColor(R.color.xxx) (default: white) |
done button text color |
buttonDrawableOnly(R.drawable.xxx) (default: false) |
If you want show drawable button without text, use this method |
max(Int, String or R.string.xxx) |
max content should picked from user device |
min(Int, String or R.string.xxx) |
min content should picked from user device |
drawerAlbum() / dropDownAlbum() (default: Drawer) |
You can choice Drawer or DropDown album style |
FAQ
- Do not need to check permissions?
- Yes,
TedImagePicker
automatically check permission. :TedImagePicker
use TedPermission - But If you need You can check permission before start
TedImagePicker
.
- java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/databinding/DataBinderMapperImpl;
- You have to enable databinding
- Read this
License
Copyright 2019 Ted Park Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.```