11package com .hjq .demo .ui .activity .account ;
22
33import android .net .Uri ;
4- import android .os .Build ;
54import android .view .View ;
65import android .view .ViewGroup ;
76import android .widget .ImageView ;
8- import androidx .annotation .NonNull ;
97import com .bumptech .glide .load .MultiTransformation ;
108import com .bumptech .glide .load .resource .bitmap .CenterCrop ;
119import com .bumptech .glide .load .resource .bitmap .CircleCrop ;
1210import com .hjq .demo .R ;
1311import com .hjq .demo .aop .SingleClick ;
1412import com .hjq .demo .app .AppActivity ;
15- import com .hjq .demo .http .api .UpdateImageApi ;
1613import com .hjq .demo .http .glide .GlideApp ;
17- import com .hjq .demo .http .model .HttpData ;
18- import com .hjq .demo .ui .activity .common .ImageCropActivity ;
1914import com .hjq .demo .ui .activity .common .ImagePreviewActivity ;
2015import com .hjq .demo .ui .activity .common .ImageSelectActivity ;
2116import com .hjq .demo .ui .dialog .common .AddressDialog ;
2217import com .hjq .demo .ui .dialog .common .InputDialog ;
23- import com .hjq .http .EasyHttp ;
24- import com .hjq .http .listener .HttpCallbackProxy ;
25- import com .hjq .http .model .FileContentResolver ;
2618import com .hjq .widget .layout .SettingBar ;
27- import java .io .File ;
28- import java .net .URI ;
29- import java .net .URISyntaxException ;
3019
3120/**
3221 * author : Android 轮子哥
@@ -89,7 +78,7 @@ public void onClick(View view) {
8978 if (view == mAvatarLayout ) {
9079 ImageSelectActivity .start (this , data -> {
9180 // 裁剪头像
92- cropImageFile (new File ( data .get (0 ) ));
81+ cropImageFile (data .get (0 ));
9382 });
9483 } else if (view == mAvatarView ) {
9584 if (mAvatarUrl != null ) {
@@ -140,67 +129,11 @@ public void onClick(View view) {
140129 /**
141130 * 裁剪图片
142131 */
143- private void cropImageFile (File sourceFile ) {
144- ImageCropActivity .start (this , sourceFile , 1 , 1 , new ImageCropActivity .OnCropListener () {
145-
146- @ Override
147- public void onImageCropSuccess (Uri fileUri , String fileName ) {
148- File outputFile ;
149- if (Build .VERSION .SDK_INT >= Build .VERSION_CODES .Q ) {
150- outputFile = new FileContentResolver (PersonalDataActivity .this , fileUri , fileName );
151- } else {
152- try {
153- outputFile = new File (new URI (fileUri .toString ()));
154- } catch (URISyntaxException e ) {
155- e .printStackTrace ();
156- outputFile = new File (fileUri .toString ());
157- }
158- }
159- updateCropImage (outputFile , true );
160- }
161-
162- @ Override
163- public void onImageCropError (String details ) {
164- // 没有的话就不裁剪,直接上传原图片
165- // 但是这种情况极其少见,可以忽略不计
166- updateCropImage (sourceFile , false );
167- }
168- });
169- }
170-
171- /**
172- * 上传裁剪后的图片
173- */
174- private void updateCropImage (File file , boolean deleteFile ) {
175- if (true ) {
176- if (file instanceof FileContentResolver ) {
177- mAvatarUrl = ((FileContentResolver ) file ).getContentUri ();
178- } else {
179- mAvatarUrl = Uri .fromFile (file );
180- }
181- GlideApp .with (this )
182- .load (mAvatarUrl )
183- .transform (new MultiTransformation <>(new CenterCrop (), new CircleCrop ()))
184- .into (mAvatarView );
185- return ;
186- }
187-
188- EasyHttp .post (this )
189- .api (new UpdateImageApi ()
190- .setImage (file ))
191- .request (new HttpCallbackProxy <HttpData <String >>(this ) {
192-
193- @ Override
194- public void onHttpSuccess (@ NonNull HttpData <String > data ) {
195- mAvatarUrl = Uri .parse (data .getData ());
196- GlideApp .with (PersonalDataActivity .this )
197- .load (mAvatarUrl )
198- .transform (new MultiTransformation <>(new CenterCrop (), new CircleCrop ()))
199- .into (mAvatarView );
200- if (deleteFile ) {
201- file .delete ();
202- }
203- }
204- });
132+ private void cropImageFile (String imagePath ) {
133+ mAvatarUrl = Uri .parse (imagePath );
134+ GlideApp .with (this )
135+ .load (imagePath )
136+ .transform (new MultiTransformation <>(new CenterCrop (), new CircleCrop ()))
137+ .into (mAvatarView );
205138 }
206139}
0 commit comments