MCPcopy Index your code
hub / github.com/ParkSangGwon/TedBottomPicker

github.com/ParkSangGwon/TedBottomPicker @2.0.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release 2.0.1 ↗ · + Follow
156 symbols 346 edges 11 files 11 documented · 7%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

What is TedBottomPicker?

In Google's Material Design, Google introduce Bottom sheets.(Components – Bottom sheets)

Bottom sheets slide up from the bottom of the screen to reveal more content.

If you want pick image from gallery or take picture, this library can help easily.

TedBottomPicker provide 3 options:

  1. Take a picture by camera(using MediaStore.ACTION_IMAGE_CAPTURE intent)
  2. Get image from gallery(using Intent.ACTION_PICK intent)
  3. Get image from recent image(using MediaStore.Images.Media.EXTERNAL_CONTENT_URI cursor)

TedBottomPicker is simple image picker using bottom sheet.

Demo

  1. Show Bottom Sheet.
  2. Pick Image

Single/Multi Select

Screenshot Screenshot
Screenshot

Setup

Gradle

Download

dependencies {
    implementation 'gun0912.ted:tedbottompicker:x.y.z'
    //implementation 'gun0912.ted:tedbottompicker:2.0.0-alpha1'
}

If you think this library is useful, please press star button at upside.

How to use

1. Check Permission

You have to grant WRITE_EXTERNAL_STORAGE permission from user.

If your targetSDK version is 23+, you have to check permission and request permission to user.

Because after Marshmallow(6.0), you have to not only decalare permisions in AndroidManifest.xml but also request permissions at runtime.

There are so many permission check library in Android-Arsenal

I recommend TedPermission

TedPermission is super simple and smart permission check library.

2. Start TedBottomPicker

  • TedBottomPicker support RxJava and Listener style

RxJava

You have to use TedRxBottomPicker - Single image

        TedRxBottomPicker.with(MainActivity.this)
                 .show()
                 .subscribe(uri ->
                    // here is selected image uri
                 }, Throwable::printStackTrace);


  • Multi image

        TedRxBottomPicker.with(MainActivity.this)
                //.setPeekHeight(getResources().getDisplayMetrics().heightPixels/2)
                .setPeekHeight(1600)
                .showTitle(false)
                .setCompleteButtonText("Done")
                .setEmptySelectionText("No Select")
                .setSelectedUriList(selectedUriList)
                .showMultiImage()
                .subscribe(uris -> {
                   // here is selected image uri list
                }, Throwable::printStackTrace);

Listener

You have to use TedBottomPicker - Single image

        TedBottomPicker.with(MainActivity.this)
               .show(new TedBottomSheetDialogFragment.OnImageSelectedListener() {
                   @Override
                   public void onImageSelected(Uri uri) {
                     // here is selected image uri
                   }
               });

  • Multi image
        TedBottomPicker.with(MainActivity.this)
               .setPeekHeight(1600)
               .showTitle(false)
               .setCompleteButtonText("Done")
               .setEmptySelectionText("No Select")
               .setSelectedUriList(selectedUriList)
               .showMultiImage(new TedBottomSheetDialogFragment.OnMultiImageSelectedListener() {
                    @Override
                    public void onImagesSelected(List<Uri> uriList) {
                         // here is selected image uri list
                    }
              });

Customize

You can customize something ...

Function

Common

  • showVideoMedia() : Not only load image, but also load video
  • setPreviewMaxCount(Int) (default: 25)
  • setPeekHeight(Int)
  • setPeekHeightResId(R.dimen.xxx)
  • showCameraTile(Boolean) (default: true)
  • setCameraTile(R.drawable.xxx or Drawable)
  • setCameraTileBackgroundResId(R.color.xxx)
  • setGalleryTile(R.drawable.xxx or Drawable)
  • showGalleryTile(Boolean) (default: true)
  • setGalleryTileBackgroundResId(R.color.xxx)
  • setSpacing(Int)
  • setSpacingResId(R.dimen.xxx)
  • setOnErrorListener(OnErrorListener)
  • setTitle(String or R.string.xxx) (default: 'Select Image','사진 선택')
  • showTitle(Boolean) (default: true)
  • setTitleBackgroundResId(R.color.xxx)
  • setImageProvider(ImageProvider) : If you want load grid image yourself, you can use your ImageProvider

Single Select

  • setSelectedUri(Uri)

Multi Select

  • setDeSelectIcon(R.drawable.xxx or Drawable)
  • setSelectedForeground(R.drawable.xxx or Drawable)
  • setSelectMaxCount(Int)
  • setSelectMinCount(Int)
  • setCompleteButtonText(String or R.string.xxx) (default: 'Done','완료')
  • setEmptySelectionText(String or R.string.xxx) (default: 'No Image','이미지가 선택되지 않았습니다')
  • setSelectMaxCountErrorText(String or R.string.xxx)
  • setSelectMinCountErrorText(String or R.string.xxx)
  • setSelectedUriList(ArrayList<Uri>)

Thanks

  • Flipboard-bottomsheet - Android component which presents a dismissible view from the bottom of the screen

License

```code Copyright 2017 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.```

Extension points exported contracts — how you extend this code

OnItemClickListener (Interface)
(no doc) [1 implementers]
tedbottompicker/src/main/java/gun0912/tedbottompicker/adapter/GalleryAdapter.java
OnMultiImageSelectedListener (Interface)
(no doc)
tedbottompicker/src/main/java/gun0912/tedbottompicker/TedBottomSheetDialogFragment.java
OnImageSelectedListener (Interface)
(no doc)
tedbottompicker/src/main/java/gun0912/tedbottompicker/TedBottomSheetDialogFragment.java
OnErrorListener (Interface)
(no doc)
tedbottompicker/src/main/java/gun0912/tedbottompicker/TedBottomSheetDialogFragment.java
ImageProvider (Interface)
(no doc)
tedbottompicker/src/main/java/gun0912/tedbottompicker/TedBottomSheetDialogFragment.java

Core symbols most depended-on inside this repo

with
called by 8
tedbottompicker/src/main/java/gun0912/tedbottompicker/TedBottomPicker.java
show
called by 7
tedbottompicker/src/main/java/gun0912/tedbottompicker/TedBottomPicker.java
errorMessage
called by 6
tedbottompicker/src/main/java/gun0912/tedbottompicker/TedBottomSheetDialogFragment.java
create
called by 6
tedbottompicker/src/main/java/gun0912/tedbottompicker/TedBottomSheetDialogFragment.java
setPeekHeight
called by 5
tedbottompicker/src/main/java/gun0912/tedbottompicker/TedBottomSheetDialogFragment.java
toString
called by 5
tedbottompicker/src/main/java/gun0912/tedbottompicker/adapter/GalleryAdapter.java
getImageUri
called by 4
tedbottompicker/src/main/java/gun0912/tedbottompicker/adapter/GalleryAdapter.java
checkPermission
called by 4
app/src/main/java/gun0912/tedbottompickerdemo/MainActivity.java

Shape

Method 135
Class 16
Interface 5

Languages

Java100%

Modules by API surface

tedbottompicker/src/main/java/gun0912/tedbottompicker/TedBottomSheetDialogFragment.java75 symbols
tedbottompicker/src/main/java/gun0912/tedbottompicker/adapter/GalleryAdapter.java21 symbols
app/src/main/java/gun0912/tedbottompickerdemo/MainActivity.java11 symbols
tedbottompicker/src/main/java/gun0912/tedbottompicker/util/RealPathUtil.java10 symbols
tedbottompicker/src/main/java/gun0912/tedbottompicker/view/TedSquareImageView.java9 symbols
tedbottompicker/src/main/java/gun0912/tedbottompicker/TedRxBottomPicker.java8 symbols
tedbottompicker/src/main/java/gun0912/tedbottompicker/view/TedEmptyRecyclerView.java6 symbols
tedbottompicker/src/main/java/gun0912/tedbottompicker/TedBottomPicker.java6 symbols
tedbottompicker/src/main/java/gun0912/tedbottompicker/view/TedSquareFrameLayout.java4 symbols
tedbottompicker/src/main/java/gun0912/tedbottompicker/GridSpacingItemDecoration.java3 symbols
app/src/main/java/gun0912/tedbottompickerdemo/MyApplication.java3 symbols

For agents

$ claude mcp add TedBottomPicker \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact