18
18
import android .transition .Visibility ;
19
19
import android .view .Gravity ;
20
20
import android .view .LayoutInflater ;
21
- import android .widget .ImageView ;
22
21
import android .widget .LinearLayout ;
23
22
import android .widget .PopupWindow ;
24
23
import android .widget .RelativeLayout ;
25
24
import android .widget .TextView ;
25
+ import android .widget .Toast ;
26
26
27
27
import androidx .annotation .NonNull ;
28
28
import androidx .annotation .Nullable ;
@@ -65,7 +65,7 @@ public class UserImageChange implements PermissionCallBack {
65
65
private Uri imageUri ;
66
66
private File outputImage ;
67
67
68
- private ImageChangeCallBack imageChangeCallBack ;
68
+ private final ImageChangeCallBack imageChangeCallBack ;
69
69
70
70
71
71
public UserImageChange (@ NonNull Activity activity ,
@@ -180,31 +180,30 @@ private void startAlbum() {
180
180
REQUEST_STORAGE_PERMISSION , this );
181
181
}
182
182
183
- public void saveImageForResult (int requestCode , int resultCode , @ Nullable Intent data , AvatarImageView avatar , ImageView background ) {
183
+ public void saveImageForResult (int requestCode , int resultCode , @ Nullable Intent data , AvatarImageView avatar ) {
184
184
if (resultCode != Activity .RESULT_OK ) {
185
185
return ;
186
186
}
187
187
if (requestCode == PICK_PHOTO ) {
188
188
assert data != null ;
189
- saveImageFromAlbum (data , avatar , background );
189
+ saveImageFromAlbum (data , avatar );
190
190
} else {
191
- saveImageFromCamera (avatar , background );
191
+ saveImageFromCamera (avatar );
192
192
}
193
193
194
194
}
195
195
196
- private void saveImageFromCamera (AvatarImageView avatar , ImageView background ) {
196
+ private void saveImageFromCamera (AvatarImageView avatar ) {
197
197
Settings .saveFilePath (key ,
198
198
outputImage .getPath ());
199
199
if (dialogType == CHANGE_BACKGROUND ) {
200
200
imageChangeCallBack .backgroundSourceChange (new File (outputImage .getPath ()));
201
- // background.setImageBitmap(BitmapFactory.decodeFile(outputImage.getPath()));
202
201
} else {
203
202
avatar .setImageBitmap (BitmapFactory .decodeFile (outputImage .getPath ()));
204
203
}
205
204
}
206
205
207
- private void saveImageFromAlbum (Intent data , AvatarImageView avatar , ImageView background ) {
206
+ private void saveImageFromAlbum (Intent data , AvatarImageView avatar ) {
208
207
209
208
String imagePath = null ;
210
209
Uri uri = data .getData ();
@@ -218,8 +217,13 @@ private void saveImageFromAlbum(Intent data, AvatarImageView avatar, ImageView b
218
217
String selection = MediaStore .Images .Media ._ID + "=" + id ;
219
218
imagePath = getImagePath (MediaStore .Images .Media .EXTERNAL_CONTENT_URI , selection );
220
219
} else if ("com.android.providers.downloads.documents" .equals (uri .getAuthority ())) {
221
- Uri contentUri = ContentUris .withAppendedId (Uri .parse ("content: //downloads/public_downloads" ), Long .parseLong (docId ));
222
- imagePath = getImagePath (contentUri , null );
220
+ try {
221
+ Uri contentUri = ContentUris .withAppendedId (Uri .parse ("content: //downloads/public_downloads" ), Long .parseLong (docId ));
222
+ imagePath = getImagePath (contentUri , null );
223
+ }catch (NumberFormatException e ){
224
+ e .printStackTrace ();
225
+ Toast .makeText (activity ,"获取图片路径出错" ,Toast .LENGTH_SHORT ).show ();
226
+ }
223
227
}
224
228
} else {
225
229
assert uri != null ;
@@ -232,10 +236,10 @@ private void saveImageFromAlbum(Intent data, AvatarImageView avatar, ImageView b
232
236
}
233
237
}
234
238
// 根据图片路径显示图片
235
- saveImage (imagePath , avatar , background );
239
+ saveImage (imagePath , avatar );
236
240
}
237
241
238
- private void saveImage (String imagePath , AvatarImageView avatar , ImageView background ) {
242
+ private void saveImage (String imagePath , AvatarImageView avatar ) {
239
243
240
244
if (imagePath == null ){
241
245
return ;
0 commit comments