간단하고 강력한 이미지 조작 라이브러리

2915 단어 Android
최근에 APP의 이미지 모듈을 재구성하는 김에 이 이미지 조작 라이브러리를 썼는데 그 중에서 기본적으로 APP 개발 중의 모든 이미지 조작을 포함한다.
이 갤러리에 포함된 기능
  • 이미지 로드 라이브러리의 2차 포장;
  • 앨범 기능
  • 앨범/카메라에서 사진을 선택하고 재단하기;
  • 이미지 압축;
  • 서버에 사진 올리기;
  • 칠우에 사진 올리기;
  • 모듈 소개
    그림 로드 라이브러리의 2차 봉인
    Fresco, ImageLoader, Glide를 통일적으로 봉인하여 확장할 수 있습니다.ImageLoaderManager 참조
    앨범 기능
    모멘트에서 사진을 선택하는 것과 같이 간결한 사용 인터페이스를 제공하여 여러 장의 사진을 선택하는 기능을 신속하게 실현할 수 있다.
    //        
    new PhotoPicker.Builder()
        .setIsDialog(false)
        .setIsShowCamera(false)
        .setMaxPhotoCount(3)
        .setSelectedPhotos(selectedPhotos)
        .builder().chooseImage(AlbumActivity.this);
    
    //              
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == PhotoPicker.REQUEST_CODE_CHOOSE_PHOTO && data != null) {
            selectedPhotos = data.getStringArrayListExtra(PhotoPicker.SELECTED_PHOTOS);
            if (selectedPhotos != null && selectedPhotos.size() > 0) {
                //     
            }
        }
    }
    
    PS: PhotoPicker 참조 처리 논리
    사진첩/카메라에서 사진 선택
    이것은 앱에 없어서는 안 될 작은 기능일 수도 있지만 호환성 구덩이가 많이 존재하기 때문에 나중에 사용하기 편리하도록 간단한 도구류로 봉하여 간단한 몇 줄의 코드를 통해 이미지를 바꾸는 작업을 실현할 수 있다.
    //            
    ChoosePhotoManager.getInstance().setAutoCrop(true);
    //        
    ChoosePhotoManager.getInstance().choosePhotoFromCamera(ChooseAndCropImageActivity.this);
    //        
    ChoosePhotoManager.getInstance().choosePhotoFromAlbum(ChooseAndCropImageActivity.this);
    //          
    ChoosePhotoManager.getInstance().setChoosePhotoListener(new OnChoosePhotoListener() {
    
        @Override
        public void choosePhotoFromAlbum(Uri uri, String errMsg) {
            //           
        }
    
        @Override
        public void choosePhotoFromCamera(Uri uri, String errMsg) {
            //           
        }
    
        @Override
        public void cropPhoto(Uri uri, String errMsg) {
            //          
        }
    });
    
    그림 압축
    더욱 좋은 사용자 체험을 하고 서버의 저장 압력을 줄이기 위해 사진을 올리기 전에 우리는 적당한 압축을 해야 한다. 여기는 루반 라이브러리를 사용하고 간단한 호출을 통해 사진을 올리기 전에 압축할 수 있다.
    void compressImage(Context context, String filePath, OnCompressListener listener)
    
    서버에 사진 올리기
    사진을 선택했으니 업로드 작업이 필요할 것이다. 여기에는 다른 소스 라이브러리에 대한 의존을 줄이기 위해 HttpURLconnection으로 이루어진 업로드 작업이 사용되었다(물론 OKHttp의 업로드 파일은 더욱 간단하다).
    //          ,                
    uploadToInnerServer(Activity context, String serverAddress, String
    filePath, final OnUploadListener listener)
    
    칠우에 사진 올리기.
    사진 업로드 방식은 두 가지가 있는데 하나는 회사 서버에 업로드한 다음에 회사 서버에서 사진 서버에 업로드하는 것이고, 다른 하나는 클라이언트에서 직접 사진 서버에 업로드하는 것이다.칠우에 올리는 것이 두 번째 방안이다. 먼저 회사 서버에서 토큰을 얻은 다음에 칠우 서버에 사진을 올리는 것이다.
    void uploadToQiNiu(Activity context, String token, String filePath, OnUploadToQiNiuListener listener)
    
    프로젝트 주소
    ImageSet
    이 라이브러리는 기본적으로 APP에서 그림의 모든 조작을 봉인하고 사용 과정에서 문제가 있으면 issue를 환영합니다.

    좋은 웹페이지 즐겨찾기