카테고리 없음

[Tip] TedBottomPicker 사용 중 문제 발생 해결

오리@ 2017. 11. 14. 02:12

즐겨쓰는 Image Picker 라이브러리인 TedBottomPicker를 새로운 프로젝트에 적용 시켰는데, 이런 에러가 뜨면서 진행이 되지 않았다.



No virtual method load(Landroid/net/Uri;)Lcom/bumptech/glide/DrawableTypeRequest; in class Lcom/bumptech/glide/RequestManager; or its super classes (declaration of 'com.bumptech.glide.RequestManager' ~~~ 이런 내용의 에러였는데,


구글에 검색해 봐도 나오지 않고, 그나마 있는 사람들도 글라이드 최선 버전으로 업그레이드 해 보라는 말 뿐이었다.


그래서 글라이드를 기존에 사용하던 3.7.0 버전에서 4.3.1 버전으로 업그레이드 시켜도 결과는 똑같았고,


다시 구글링 해 본 결과 상권님의 Github에서 해결 책을 찾을 수 있었다.


이 에러의 문제는, TedBottomPicker에서는 Glide를 3.6.1 버전을 사용 하고 있는데, 글라이드 v4 이상을 사용하는 사람들은, Builder와 함께 ImageProvider를 함께 사용해 주어야 한다.


ImageProvider는 TedBottomPicker의 Custom 메소드 이며, 화면에서 보이는 imageView와 함께 그 imageView에 해당하는 이미지의 uri를 받아서 커스텀 할 수 있다.


커스텀 없이 그냥 사용하려면, 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 TedBottomPicker tedBottomPicker = new TedBottomPicker.Builder(MainActivity.this)
                        .setImageProvider(new TedBottomPicker.ImageProvider() {
                            @Override
                            public void onProvideImage(ImageView imageView, Uri imageUri) {
 
                                Glide.with(Mainboard_Write_Post.this).load(imageUri).into(imageView);
                                Log.d("Log""Uri Log : " + imageUri.toString());
 
                            }
                        })
                        .setOnMultiImageSelectedListener(new TedBottomPicker.OnMultiImageSelectedListener() {
                            @Override
                            public void onImagesSelected(ArrayList<Uri> uriList) {
                                
 
                            }
                        }).create();
 
                tedBottomPicker.show(getSupportFragmentManager());
cs



이렇게 사용 하면 된다.


원문은 여기를 참고하자 : https://github.com/ParkSangGwon/TedBottomPicker/issues/54