更换了一个第三方图片选择器,同时也更新了用户头像还有教师端的创建课程中图片上传相关逻辑代码

master
呗 呗 3 years ago
parent 4f999a342f
commit cf2d645377

@ -18,6 +18,7 @@
<entry key="..\:/CourseDesign/androidDevelopment/code/final/S.T.Link/app/src/main/res/drawable/ic_launcher_background.xml" value="0.229" />
<entry key="..\:/CourseDesign/androidDevelopment/code/final/S.T.Link/app/src/main/res/drawable/layerlist_inputtext_modify.xml" value="0.194" />
<entry key="..\:/CourseDesign/androidDevelopment/code/final/S.T.Link/app/src/main/res/drawable/pb_login_loading.xml" value="0.2195" />
<entry key="..\:/CourseDesign/androidDevelopment/code/final/S.T.Link/app/src/main/res/drawable/ps_image_placeholder.xml" value="0.19" />
<entry key="..\:/CourseDesign/androidDevelopment/code/final/S.T.Link/app/src/main/res/drawable/selector_bottm_modify_info_save.xml" value="0.213" />
<entry key="..\:/CourseDesign/androidDevelopment/code/final/S.T.Link/app/src/main/res/drawable/selector_bottom_add_course.xml" value="0.1915" />
<entry key="..\:/CourseDesign/androidDevelopment/code/final/S.T.Link/app/src/main/res/drawable/selector_bottom_modify_info_save.xml" value="0.1955" />

@ -74,7 +74,11 @@ dependencies {
implementation 'org.ligboy.retrofit2:converter-fastjson-android:2.1.0'
//
implementation 'com.github.donkingliang:ImageSelector:2.2.1'
implementation 'io.github.lucksiege:pictureselector:v3.10.2'
// image compress library (Not necessary)
implementation 'io.github.lucksiege:compress:v3.10.2'
// uCrop library
implementation 'io.github.lucksiege:ucrop:v3.10.2'
//
implementation 'gdut.bsx:xdraglayout:1.1.1'

@ -66,6 +66,8 @@
android:resource="@xml/file_paths"/>
</provider>
<!-- 调整二维码扫描界面为竖屏 -->
<activity
android:name="com.journeyapps.barcodescanner.CaptureActivity"

@ -1,13 +1,14 @@
package com.example.stlink.activitys.fragmentChild.activityTeaHome;
import android.annotation.SuppressLint;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Color;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.provider.MediaStore;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
@ -19,8 +20,8 @@ import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import com.bumptech.glide.Glide;
import com.donkingliang.imageselector.utils.ImageSelector;
import com.example.stlink.R;
import com.example.stlink.configs.GlideEngine;
import com.example.stlink.model.constants.ModelFieldConstants;
import com.example.stlink.model.constants.UrlConstants;
import com.example.stlink.model.request.CourseCreateRequest;
@ -28,9 +29,13 @@ import com.example.stlink.utils.CommonUtils;
import com.example.stlink.utils.activityUtil.CreateCourseUtil;
import com.example.stlink.utils.activityUtil.ImgUploadUtil;
import com.google.android.material.datepicker.MaterialDatePicker;
import com.google.android.material.datepicker.MaterialPickerOnPositiveButtonClickListener;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.textfield.TextInputEditText;
import com.luck.picture.lib.basic.PictureSelector;
import com.luck.picture.lib.config.SelectMimeType;
import com.luck.picture.lib.config.SelectModeConfig;
import com.luck.picture.lib.entity.LocalMedia;
import com.luck.picture.lib.interfaces.OnResultCallbackListener;
import java.util.ArrayList;
import java.util.Objects;
@ -58,6 +63,8 @@ public class CreateCourse extends AppCompatActivity {
private Handler btAddHandler;
private Handler imgUploadHandler;
//每两秒进行一个检测
private final Runnable btRunnable = new Runnable() {
@SuppressLint("ResourceAsColor")
@ -137,42 +144,6 @@ public class CreateCourse extends AppCompatActivity {
btAddHandler.postDelayed(btRunnable, 2000);
}
//用于图片选择器选择图片之后的回调,来完成图片上传和刷新本地
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 100 && data != null) {
//获取选择器返回的数据
ArrayList<String> images = data.getStringArrayListExtra(
ImageSelector.SELECT_RESULT);
String url = images.get(0);
Handler handler = new Handler(Looper.getMainLooper()){
@Override
public void handleMessage(@NonNull Message msg) {
super.handleMessage(msg);
bundle = (Bundle) msg.obj;
if(bundle.getBoolean(UrlConstants.IS_IMG_UPLOAD_SUCCESS)){
System.out.println("refreshData..................");
getIntent().putExtras(bundle);
refreshData();
//表示照片添加成功
isSuccessCoursePhoto = true;
}else{
Toast.makeText(CreateCourse.this, "修改失败", Toast.LENGTH_SHORT).show();
}
}
};
ImgUploadUtil.userImgUpload(bundle, handler, url, ModelFieldConstants.COURSE_PHOTO);
/**
*
* true
* true
*/
boolean isCameraImage = data.getBooleanExtra(ImageSelector.IS_CAMERA_IMAGE, false);
}
}
/**
*
*/
@ -209,14 +180,33 @@ public class CreateCourse extends AppCompatActivity {
refreshData();
// 用于图片上传成功之后刷新界面
imgUploadHandler = new Handler(Looper.getMainLooper()){
@Override
public void handleMessage(@NonNull Message msg) {
super.handleMessage(msg);
bundle = (Bundle) msg.obj;
if(bundle.getBoolean(UrlConstants.IS_IMG_UPLOAD_SUCCESS)){
System.out.println("refreshData..................");
getIntent().putExtras(bundle);
refreshData();
//表示照片添加成功
isSuccessCoursePhoto = true;
}else{
Toast.makeText(CreateCourse.this, "修改失败", Toast.LENGTH_SHORT).show();
}
}
};
setClickListener();
}
private void refreshData(){
bundle = getIntent().getExtras();
String courseImg = bundle.getString(ModelFieldConstants.COURSE_PHOTO);
if(courseImg != null){
if(courseImg != null){ // 将图片加载出来
Glide.with(getApplicationContext())
.load(courseImg)
.into(ivAddImg);
@ -233,109 +223,86 @@ public class CreateCourse extends AppCompatActivity {
*
*/
private void setClickListener(){
startDatePicker.addOnPositiveButtonClickListener(new MaterialPickerOnPositiveButtonClickListener<Long>() {
@Override
public void onPositiveButtonClick(Long selection) {
startDatePicker.addOnPositiveButtonClickListener(selection -> {
String startFormDate = CommonUtils.stampToDate(String.valueOf(selection), "yyyy年MM月dd日");
etStartTime.setText(startFormDate);
isSuccessCourseStartTime = true;
Bundle bundle1 = getIntent().getExtras();
bundle1.putLong(ModelFieldConstants.START_TIME, selection);
getIntent().putExtras(bundle1);
}
});
endDatePicker.addOnPositiveButtonClickListener(new MaterialPickerOnPositiveButtonClickListener<Long>() {
@Override
public void onPositiveButtonClick(Long selection) {
endDatePicker.addOnPositiveButtonClickListener(selection -> {
String endFormDate = CommonUtils.stampToDate(String.valueOf(selection), "yyyy年MM月dd日");
etEndTime.setText(endFormDate);
isSuccessCourseEndTime = true;
Bundle bundle1 = getIntent().getExtras();
bundle1.putLong(ModelFieldConstants.END_TIME, selection);
getIntent().putExtras(bundle1);
}
});
//点击添加图片
ivAddImg.setOnClickListener(new View.OnClickListener() {
ivAddImg.setOnClickListener(v -> {
// 调用第三方开源图片库
PictureSelector.create(this)
.openGallery(SelectMimeType.ofImage())
.setImageEngine(GlideEngine.createGlideEngine()) // 图片加载引擎
.setMaxSelectNum(1)// 最大图片选择数量 int
.setImageSpanCount(4)// 每行显示个数 int
.setSelectionMode(SelectModeConfig.SINGLE)// 多选 or 单选
.isPreviewImage(true)// 是否可预览图片 true or false
.isSelectZoomAnim(true)// 图片列表点击 缩放效果 默认true
.isGif(false) //是否显示gif文件
.isWebp(false) //是否显示webp文件
.isBmp(false) //是否显示bmp文件
.isMaxSelectEnabledMask(true) //达到最大选择数是否开启禁选蒙层
.forResult(new OnResultCallbackListener<LocalMedia>() {
@Override
public void onClick(View v) {
//调用第三方开源库,单选并剪裁
ImageSelector.builder()
.useCamera(false) // 设置是否使用拍照
.setCrop(true) // 设置是否使用图片剪切功能。
.setCropRatio(1.0f) // 图片剪切的宽高比,默认1.0f。宽固定为手机屏幕的宽。
.setSingle(true) //设置是否单选
.canPreview(true) //是否可以预览图片默认为true
.start(CreateCourse.this, 100); // 打开相册
public void onResult(ArrayList<LocalMedia> result) { // 选择图片后回调
LocalMedia localMedia = result.get(0);
ImgUploadUtil.userImgUpload(bundle, imgUploadHandler, localMedia.getRealPath(), ModelFieldConstants.COURSE_PHOTO);
}
@Override
public void onCancel() { } // 取消
});
});
//课程开始时间
etStartTime.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
etStartTime.setOnClickListener(v -> {
if(!startDatePicker.isAdded()){
startDatePicker.show(getSupportFragmentManager(), "Hello");
}
}
});
//课程结束时间
etEndTime.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
etEndTime.setOnClickListener(v -> {
if(!endDatePicker.isAdded()){
endDatePicker.show(getSupportFragmentManager(), "Hello");
}
}
});
//刷新当前时间
etCreateTime.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
etCreateTime.setOnClickListener(v -> {
long currentDate = System.currentTimeMillis();
String curFormDate = CommonUtils.stampToDate(String.valueOf(currentDate), "yyyy年MM月dd日");
etCreateTime.setText(curFormDate);
isSuccessCourseCreateTime = true;
}
});
//课程状态选择
etStatus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
etStatus.setOnClickListener(v -> {
String[] singleItems = {"未结课", "已结课"};
int checkedItem = "未结课".equals(etStatus.getText().toString()) ? 0 : 1;
int checkedItem = "未结课".equals(Objects.requireNonNull(etStatus.getText()).toString()) ? 0 : 1;
MaterialAlertDialogBuilder materialAlertDialogBuilder = new MaterialAlertDialogBuilder(CreateCourse.this)
.setTitle("请选择课程授课状态")
.setNeutralButton(getString(R.string.cancel), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
.setNeutralButton(getString(R.string.cancel), (dialog, which) -> {
}
})
.setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
etStatus.setText(singleItems[bundle.getInt("checkedItem")]);
}
})
.setSingleChoiceItems(singleItems, checkedItem, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
bundle.putInt("checkedItem", which);
}
});
.setPositiveButton(getString(R.string.ok), (dialog, which) ->
etStatus.setText(singleItems[bundle.getInt("checkedItem")]))
.setSingleChoiceItems(singleItems, checkedItem, (dialog, which) ->
bundle.putInt("checkedItem", which));
materialAlertDialogBuilder.show();
}
});
//返回上一个活动
abIvTitle.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
abIvTitle.setOnClickListener(v -> finish());
}
/**

@ -1,17 +1,11 @@
package com.example.stlink.activitys.fragmentChild.activityUserInfo;
import android.Manifest;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.location.LocationManager;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.provider.Settings;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
@ -22,19 +16,21 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.core.content.ContextCompat;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
import com.bumptech.glide.request.RequestOptions;
import com.donkingliang.imageselector.utils.ImageSelector;
import com.example.stlink.R;
import com.example.stlink.activitys.MapActivity;
import com.example.stlink.activitys.fragmentChild.activityTeaHome.CreateSign;
import com.example.stlink.configs.GlideEngine;
import com.example.stlink.model.constants.ModelFieldConstants;
import com.example.stlink.model.constants.UrlConstants;
import com.example.stlink.utils.CommonUtils;
import com.example.stlink.utils.activityUtil.ImgUploadUtil;
import com.luck.picture.lib.basic.PictureSelector;
import com.luck.picture.lib.config.SelectMimeType;
import com.luck.picture.lib.config.SelectModeConfig;
import com.luck.picture.lib.entity.LocalMedia;
import com.luck.picture.lib.interfaces.OnResultCallbackListener;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
@ -66,9 +62,11 @@ public class UserInfoDetail extends AppCompatActivity {
private Bundle bundle;
private Handler imgUploadHandler;
private ActivityResultLauncher<Intent> intentActivityResultLauncher;
private ArrayList<String> arrayList;
// private ArrayList<String> arrayList;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
@ -114,29 +112,12 @@ public class UserInfoDetail extends AppCompatActivity {
assert data != null;
getIntent().putExtras(data.getExtras());
refreshData();
}else if (resultCode == 100){
assert data != null;
ArrayList<String> images = data.getStringArrayListExtra(
ImageSelector.SELECT_RESULT);
}
});
refreshData();
initOnClickListener();
}
//用于图片选择器选择图片之后的回调,来完成图片上传和刷新本地
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 100 && data != null) {
//获取选择器返回的数据
ArrayList<String> images = data.getStringArrayListExtra(
ImageSelector.SELECT_RESULT);
String url = images.get(0);
Handler handler = new Handler(Looper.getMainLooper()){
imgUploadHandler = new Handler(Looper.getMainLooper()){
@Override
public void handleMessage(@NonNull Message msg) {
super.handleMessage(msg);
@ -150,14 +131,8 @@ public class UserInfoDetail extends AppCompatActivity {
}
}
};
ImgUploadUtil.userImgUpload(bundle, handler, url, ModelFieldConstants.AVATAR);
/**
*
* true
* true
*/
boolean isCameraImage = data.getBooleanExtra(ImageSelector.IS_CAMERA_IMAGE, false);
}
initOnClickListener();
}
private void refreshData(){
@ -168,7 +143,7 @@ public class UserInfoDetail extends AppCompatActivity {
String userNameMsg = (String) bundle.get(ModelFieldConstants.USER_NAME);
String realNameMsg = (String) bundle.get(ModelFieldConstants.REAL_NAME);
Long idNumberMsg = (Long) bundle.get(ModelFieldConstants.ID_NUMBER);
Boolean sexMsg = bundle.getBoolean(ModelFieldConstants.GENDER);
boolean sexMsg = bundle.getBoolean(ModelFieldConstants.GENDER);
Long createTimeMsg = (Long) bundle.get(ModelFieldConstants.CREATE_TIME);
String emailMsg = (String) bundle.get(ModelFieldConstants.EMAIL);
String phoneMsg = (String) bundle.get(ModelFieldConstants.PHONE);
@ -181,7 +156,7 @@ public class UserInfoDetail extends AppCompatActivity {
Glide.with(getApplicationContext())
.load(avatar)
//添加圆角
.apply(new RequestOptions().bitmapTransform(new RoundedCorners(30)))
.apply(RequestOptions.bitmapTransform(new RoundedCorners(30)))
.into(ivHeadImg);
}
if(schoolName != null){
@ -221,104 +196,92 @@ public class UserInfoDetail extends AppCompatActivity {
*/
public void initOnClickListener(){
//头像
clHeadImg.setOnClickListener(new View.OnClickListener() {
clHeadImg.setOnClickListener(v -> {
// 调用第三方开源图片库
PictureSelector.create(this)
.openGallery(SelectMimeType.ofImage())
.setImageEngine(GlideEngine.createGlideEngine()) // 图片加载引擎
.setMaxSelectNum(1)// 最大图片选择数量 int
.setImageSpanCount(4)// 每行显示个数 int
.setSelectionMode(SelectModeConfig.SINGLE)// 多选 or 单选
.isPreviewImage(true)// 是否可预览图片 true or false
.isSelectZoomAnim(true)// 图片列表点击 缩放效果 默认true
.isGif(false) //是否显示gif文件
.isWebp(false) //是否显示webp文件
.isBmp(false) //是否显示bmp文件
.isMaxSelectEnabledMask(true) //达到最大选择数是否开启禁选蒙层
.forResult(new OnResultCallbackListener<LocalMedia>() {
@Override
public void onClick(View v) {
//调用第三方开源库,单选并剪裁
ImageSelector.builder()
.useCamera(true) // 设置是否使用拍照
.setCrop(true) // 设置是否使用图片剪切功能。
.setCropRatio(1.0f) // 图片剪切的宽高比,默认1.0f。宽固定为手机屏幕的宽。
.setSingle(true) //设置是否单选
.canPreview(true) //是否可以预览图片默认为true
.start(UserInfoDetail.this, 100); // 打开相册
public void onResult(ArrayList<LocalMedia> result) {
LocalMedia localMedia = result.get(0);
String path = localMedia.getRealPath();
ImgUploadUtil.userImgUpload(bundle, imgUploadHandler, path, ModelFieldConstants.AVATAR);
}
});
clUserName.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
public void onCancel() {
}
});
});
clUserName.setOnClickListener(v -> {
Intent intent = new Intent(UserInfoDetail.this, ModifyUserInfo.class);
Bundle bundle = getIntent().getExtras();
bundle.putString(ModelFieldConstants.TO_BE_MODIFY, ModelFieldConstants.USER_NAME);
intent.putExtras(bundle);
intentActivityResultLauncher.launch(intent);
}
});
clSchoolName.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
clSchoolName.setOnClickListener(v -> {
Intent intent = new Intent(UserInfoDetail.this, ModifyUserInfo.class);
Bundle bundle = getIntent().getExtras();
bundle.putString(ModelFieldConstants.TO_BE_MODIFY, ModelFieldConstants.COLLEGE_NAME);
intent.putExtras(bundle);
intentActivityResultLauncher.launch(intent);
}
});
clRealName.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
clRealName.setOnClickListener(v -> {
Intent intent = new Intent(UserInfoDetail.this, ModifyUserInfo.class);
Bundle bundle = getIntent().getExtras();
bundle.putString(ModelFieldConstants.TO_BE_MODIFY, ModelFieldConstants.REAL_NAME);
intent.putExtras(bundle);
intentActivityResultLauncher.launch(intent);
}
});
clIdNumber.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
clIdNumber.setOnClickListener(v -> {
Intent intent = new Intent(UserInfoDetail.this, ModifyUserInfo.class);
Bundle bundle = getIntent().getExtras();
bundle.putString(ModelFieldConstants.TO_BE_MODIFY, ModelFieldConstants.ID_NUMBER);
intent.putExtras(bundle);
intentActivityResultLauncher.launch(intent);
}
});
clSex.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
clSex.setOnClickListener(v -> {
Intent intent = new Intent(UserInfoDetail.this, ModifyUserInfo.class);
Bundle bundle = getIntent().getExtras();
bundle.putString(ModelFieldConstants.TO_BE_MODIFY, ModelFieldConstants.GENDER);
intent.putExtras(bundle);
intentActivityResultLauncher.launch(intent);
}
});
clCreateTime.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
clCreateTime.setOnClickListener(v -> {
});
clEmail.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
clEmail.setOnClickListener(v -> {
Intent intent = new Intent(UserInfoDetail.this, ModifyUserInfo.class);
Bundle bundle = getIntent().getExtras();
bundle.putString(ModelFieldConstants.TO_BE_MODIFY, ModelFieldConstants.EMAIL);
intent.putExtras(bundle);
intentActivityResultLauncher.launch(intent);
}
});
clPhone.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
clPhone.setOnClickListener(v -> {
Intent intent = new Intent(UserInfoDetail.this, ModifyUserInfo.class);
Bundle bundle = getIntent().getExtras();
bundle.putString(ModelFieldConstants.TO_BE_MODIFY, ModelFieldConstants.PHONE);
intent.putExtras(bundle);
intentActivityResultLauncher.launch(intent);
}
});
//返回上一个活动,也就是个人信息部分
abIvTitle.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
abIvTitle.setOnClickListener(v -> {
Intent intent = new Intent();
intent.putExtras(bundle);
setResult(RESULT_OK,intent);
finish();
}
});
}

@ -0,0 +1,155 @@
package com.example.stlink.configs;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.widget.ImageView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.resource.bitmap.CenterCrop;
import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
import com.bumptech.glide.request.target.CustomTarget;
import com.bumptech.glide.request.transition.Transition;
import com.example.stlink.R;
import com.luck.picture.lib.engine.ImageEngine;
import com.luck.picture.lib.interfaces.OnCallbackListener;
import com.luck.picture.lib.utils.ActivityCompatHelper;
/**
* @author luck
* @date 2019-11-13 17:02
* @describe Glide
*/
public class GlideEngine implements ImageEngine {
/**
*
*
* @param context
* @param url url
* @param imageView
*/
@Override
public void loadImage(@NonNull Context context, @NonNull String url, @NonNull ImageView imageView) {
if (!ActivityCompatHelper.assertValidRequest(context)) {
return;
}
Glide.with(context)
.load(url)
.into(imageView);
}
/**
* urlbitmap
*
* @param context
* @param url url
* @param maxWidth
* @param maxHeight
* @param call
*/
@Override
public void loadImageBitmap(@NonNull Context context, @NonNull String url, int maxWidth, int maxHeight, OnCallbackListener<Bitmap> call) {
if (!ActivityCompatHelper.assertValidRequest(context)) {
return;
}
Glide.with(context)
.asBitmap()
.override(maxWidth, maxHeight)
.load(url)
.into(new CustomTarget<Bitmap>() {
@Override
public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
if (call != null) {
call.onCall(resource);
}
}
@Override
public void onLoadFailed(@Nullable Drawable errorDrawable) {
if (call != null) {
call.onCall(null);
}
}
@Override
public void onLoadCleared(@Nullable Drawable placeholder) {
}
});
}
/**
*
*
* @param context
* @param url
* @param imageView ImageView
*/
@Override
public void loadAlbumCover(@NonNull Context context, @NonNull String url, @NonNull ImageView imageView) {
if (!ActivityCompatHelper.assertValidRequest(context)) {
return;
}
Glide.with(context)
.asBitmap()
.load(url)
.override(180, 180)
.sizeMultiplier(0.5f)
.transform(new CenterCrop(), new RoundedCorners(8))
.placeholder(R.drawable.ps_image_placeholder)
.into(imageView);
}
/**
*
*
* @param context
* @param url
* @param imageView ImageView
*/
@Override
public void loadGridImage(@NonNull Context context, @NonNull String url, @NonNull ImageView imageView) {
if (!ActivityCompatHelper.assertValidRequest(context)) {
return;
}
Glide.with(context)
.load(url)
.override(200, 200)
.centerCrop()
.placeholder(R.drawable.ps_image_placeholder)
.into(imageView);
}
@Override
public void pauseRequests(Context context) {
Glide.with(context).pauseRequests();
}
@Override
public void resumeRequests(Context context) {
Glide.with(context).resumeRequests();
}
private GlideEngine() {
}
private static GlideEngine instance;
public static GlideEngine createGlideEngine() {
if (null == instance) {
synchronized (GlideEngine.class) {
if (null == instance) {
instance = new GlideEngine();
}
}
}
return instance;
}
}

@ -1,6 +1,5 @@
package com.example.stlink.utils.activityUtil;
import android.graphics.ColorSpace;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
@ -8,7 +7,6 @@ import android.text.TextUtils;
import androidx.annotation.Nullable;
//import com.example.stlink.config.adapter.ImageAdapter;
import com.example.stlink.model.constants.ModelFieldConstants;
import com.example.stlink.model.constants.UrlConstants;
import com.example.stlink.model.response.BaseResponse;
@ -34,11 +32,9 @@ public class ImgUploadUtil {
mBundle.getBoolean(UrlConstants.IS_IMG_UPLOAD_SUCCESS, false);
new Thread(new Runnable() {
@Override
public void run() {
new Thread(() -> {
File file = null;
if (!TextUtils.isEmpty(path)) {
if (path != null && !TextUtils.isEmpty(path)) {
file = new File(path);
}
new PostFileHttpUtils() {
@ -62,7 +58,6 @@ public class ImgUploadUtil {
handler.sendMessage(message);
}
}.FileUpload(UrlConstants.FILE_UPLOAD, file);
}
}).start();
}

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape>
<size
android:width="100dp"
android:height="100dp" />
<solid android:color="@color/ps_color_light_grey" />
</shape>
</item>
<item>
<bitmap
android:gravity="center"
android:src="@drawable/ps_ic_placeholder" />
</item>
</layer-list>
Loading…
Cancel
Save