[Modify]修复动态特权卡不能显示的问题
This commit is contained in:
@@ -2,11 +2,6 @@ package com.nnbc123.app.avroom.activity
|
||||
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.graphics.Color
|
||||
import android.text.SpannableString
|
||||
import android.text.Spanned
|
||||
import android.text.method.LinkMovementMethod
|
||||
import android.view.View
|
||||
import android.widget.LinearLayout
|
||||
import android.widget.TextView
|
||||
import androidx.core.content.ContextCompat
|
||||
@@ -15,18 +10,12 @@ import com.netease.nim.uikit.StatusBarUtil
|
||||
import com.netease.nim.uikit.common.util.sys.ScreenUtil
|
||||
import com.nnbc123.app.R
|
||||
import com.nnbc123.app.adapter.CommonVPAdapter
|
||||
import com.nnbc123.app.avroom.dialog.CreatePrivilegeCardDialog
|
||||
import com.nnbc123.app.avroom.fragment.PrivilegeCardFragment
|
||||
import com.nnbc123.app.avroom.fragment.RoomBgFragment
|
||||
import com.nnbc123.app.base.BaseViewBindingActivity
|
||||
import com.nnbc123.app.common.widget.OriginalDrawStatusClickSpan
|
||||
import com.nnbc123.app.databinding.ActivityPrivilegeBinding
|
||||
import com.nnbc123.app.databinding.ActivityRoomBgBinding
|
||||
import com.nnbc123.app.home.adapter.MainMagicIndicatorAdapter
|
||||
import com.nnbc123.app.ui.webview.CommonWebViewActivity
|
||||
import com.nnbc123.app.ui.widget.magicindicator.ViewPagerHelper
|
||||
import com.nnbc123.app.ui.widget.magicindicator.buildins.commonnavigator.CommonNavigator
|
||||
import com.nnbc123.core.UriProvider
|
||||
import com.nnbc123.library.annatation.ActLayoutRes
|
||||
|
||||
/**
|
||||
|
@@ -1,19 +1,26 @@
|
||||
package com.nnbc123.app.avroom.dialog
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.app.Activity
|
||||
import android.content.Intent
|
||||
import android.graphics.Bitmap
|
||||
import android.net.Uri
|
||||
import android.os.Bundle
|
||||
import android.text.Editable
|
||||
import android.text.TextWatcher
|
||||
import android.view.Gravity
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.fragment.app.viewModels
|
||||
import com.hjq.toast.ToastUtils
|
||||
import com.netease.nim.uikit.common.util.sys.ScreenUtil
|
||||
import com.nnbc123.app.ErbanTakePhotoActivity
|
||||
import com.nnbc123.app.ErbanTakePhotoActivity.TakePhotoCallBack
|
||||
import com.nnbc123.app.R
|
||||
import com.nnbc123.app.application.XChatApplication
|
||||
import com.nnbc123.app.avroom.PrivilegeViewModel
|
||||
import com.nnbc123.app.avroom.event.PrivilegeCardEvent
|
||||
import com.nnbc123.app.base.BaseActivity
|
||||
import com.nnbc123.app.base.BaseDialog
|
||||
import com.nnbc123.app.common.util.BitmapUtil
|
||||
import com.nnbc123.app.databinding.DialogCreatePrivilegeCardBinding
|
||||
import com.nnbc123.app.takephoto.model.TResult
|
||||
import com.nnbc123.app.ui.utils.ImageLoadUtils
|
||||
@@ -21,9 +28,20 @@ import com.nnbc123.app.ui.utils.ImageLoadUtilsV2
|
||||
import com.nnbc123.app.ui.widget.dialog.CommonTipDialog
|
||||
import com.nnbc123.core.file.FileModel
|
||||
import com.nnbc123.core.privilege.bean.PrivilegeCardInfo
|
||||
import com.nnbc123.core.utils.Logger
|
||||
import com.nnbc123.core.utils.TextUtils
|
||||
import com.nnbc123.library.common.file.FileHelper
|
||||
import com.nnbc123.library.common.glide.GlideUtils
|
||||
import com.nnbc123.library.common.photo.PhotoProviderNew
|
||||
import com.nnbc123.library.common.util.PhotoCompressCallback
|
||||
import com.nnbc123.library.common.util.PhotoCompressUtil
|
||||
import com.nnbc123.library.easyphoto.constant.Type
|
||||
import com.nnbc123.library.utils.SingleToastUtil
|
||||
import com.yalantis.ucrop.UCrop
|
||||
import kotlinx.coroutines.Job
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.*
|
||||
import java.util.regex.Pattern
|
||||
|
||||
/**
|
||||
@@ -35,6 +53,15 @@ class CreatePrivilegeCardDialog : BaseDialog<DialogCreatePrivilegeCardBinding>()
|
||||
TakePhotoCallBack {
|
||||
|
||||
companion object {
|
||||
|
||||
private const val TAG = "CreatePrivilegeCardDial"
|
||||
private const val REQUEST_CODE_OPEN_PHOTO_PROVIDER = 111 // 从相册中选择
|
||||
private const val MAX_BITMAP_SIZE = 100 * 1024 * 1024 // 剪切的图片最大为100 MB
|
||||
private const val MIN_HEAD_PHOTO_SIZE = 20 * 1024 // 剪切的图片最小为20kb
|
||||
|
||||
//压缩后的大小不能超过大小 800KB
|
||||
private const val IMAGE_MOST_COMPRESS_SIZE = 800
|
||||
|
||||
@JvmStatic
|
||||
fun newInstance(): CreatePrivilegeCardDialog {
|
||||
return CreatePrivilegeCardDialog()
|
||||
@@ -54,7 +81,10 @@ class CreatePrivilegeCardDialog : BaseDialog<DialogCreatePrivilegeCardBinding>()
|
||||
|
||||
private var saveTipDialog: CommonTipDialog? = null
|
||||
|
||||
private var url = ""
|
||||
private var mUrl = ""
|
||||
|
||||
private var mUri: Uri? = null
|
||||
private var mJob: Job? = null
|
||||
|
||||
private val privilegeViewModel: PrivilegeViewModel by viewModels()
|
||||
|
||||
@@ -74,7 +104,7 @@ class CreatePrivilegeCardDialog : BaseDialog<DialogCreatePrivilegeCardBinding>()
|
||||
binding.edValid.setText(it.effectDay.toString())
|
||||
binding.edId.setText(it.erbanNoStr)
|
||||
ImageLoadUtilsV2.loadImage(binding.ivPic, it.cardUrl)
|
||||
this.url = it.cardUrl
|
||||
this.mUrl = it.cardUrl
|
||||
}
|
||||
|
||||
binding.edName.addTextChangedListener(object : TextWatcher {
|
||||
@@ -153,13 +183,18 @@ class CreatePrivilegeCardDialog : BaseDialog<DialogCreatePrivilegeCardBinding>()
|
||||
})
|
||||
|
||||
binding.ivPic.setOnClickListener {
|
||||
ErbanTakePhotoActivity.startToSelectPhoto(context, this)
|
||||
mUri = Uri.parse("file://${FileHelper.getRootCacheDir()?.path}/${getNowTime()}.jpg")
|
||||
PhotoProviderNew.photoProvider(
|
||||
this,
|
||||
canChooseGif = true,
|
||||
resultCode = REQUEST_CODE_OPEN_PHOTO_PROVIDER
|
||||
)
|
||||
}
|
||||
binding.tvCancel.setOnClickListener {
|
||||
dismissAllowingStateLoss()
|
||||
}
|
||||
binding.tvConfirm.setOnClickListener {
|
||||
if(!isStringComma(binding.edId.text.toString())){
|
||||
if (!isStringComma(binding.edId.text.toString())) {
|
||||
SingleToastUtil.showToast("请输入以逗号分隔的id")
|
||||
} else if (checkEmpty()) {
|
||||
SingleToastUtil.showToast("请填写完整信息")
|
||||
@@ -175,6 +210,12 @@ class CreatePrivilegeCardDialog : BaseDialog<DialogCreatePrivilegeCardBinding>()
|
||||
}
|
||||
}
|
||||
|
||||
private fun getNowTime(): String {
|
||||
val date = Date(System.currentTimeMillis())
|
||||
val dateFormat = SimpleDateFormat("MMddHHmmssSS")
|
||||
return dateFormat.format(date)
|
||||
}
|
||||
|
||||
private fun showTip() {
|
||||
if (saveTipDialog == null) {
|
||||
saveTipDialog = CommonTipDialog(context)
|
||||
@@ -187,7 +228,7 @@ class CreatePrivilegeCardDialog : BaseDialog<DialogCreatePrivilegeCardBinding>()
|
||||
binding.edExplain.text.toString(),
|
||||
binding.edValid.text.toString().toInt(),
|
||||
binding.edId.text.toString(),
|
||||
url
|
||||
mUrl
|
||||
)
|
||||
saveTipDialog?.dismiss()
|
||||
}
|
||||
@@ -207,7 +248,7 @@ class CreatePrivilegeCardDialog : BaseDialog<DialogCreatePrivilegeCardBinding>()
|
||||
return (TextUtils.isEmptyText(binding.edName.text.toString()) || TextUtils.isEmptyText(
|
||||
binding.edUseNumber.text.toString()
|
||||
) || TextUtils.isEmptyText(binding.edValid.text.toString()) || TextUtils.isEmptyText(binding.edId.text.toString()) || TextUtils.isEmptyText(
|
||||
url
|
||||
mUrl
|
||||
))
|
||||
}
|
||||
|
||||
@@ -219,6 +260,130 @@ class CreatePrivilegeCardDialog : BaseDialog<DialogCreatePrivilegeCardBinding>()
|
||||
return matcher.matches() || matcher1.matches()
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
||||
super.onActivityResult(requestCode, resultCode, data)
|
||||
if (resultCode == BaseActivity.RESULT_OK) {
|
||||
when (requestCode) {
|
||||
REQUEST_CODE_OPEN_PHOTO_PROVIDER -> data?.let {
|
||||
val photos = PhotoProviderNew.getResultPhotoList(it) ?: return
|
||||
if (photos.isNotEmpty()) {
|
||||
val photo = photos[0]
|
||||
if(photo.path.endsWith(Type.GIF) || photo.type.endsWith(Type.GIF)){
|
||||
FileModel.get()
|
||||
.uploadFile(photo.path)
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe { url: String?, throwable: Throwable? ->
|
||||
if (throwable != null) {
|
||||
SingleToastUtil.showToast("上传失败")
|
||||
} else {
|
||||
url?.let { it1 ->
|
||||
GlideUtils.instance().loadUriGiftAndCrossFadeRound(
|
||||
it1, binding.ivPic, 10f)
|
||||
}
|
||||
if (url != null) {
|
||||
mUrl = url
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
crop(photo.uri, photo.size, mUri)
|
||||
}
|
||||
}
|
||||
}
|
||||
UCrop.REQUEST_CROP ->{
|
||||
mUri?.path?.let {
|
||||
mJob = PhotoCompressUtil.compress(
|
||||
context as Activity,
|
||||
it,
|
||||
PhotoCompressUtil.getCompressCachePath(),
|
||||
object : PhotoCompressCallback {
|
||||
@SuppressLint("CheckResult")
|
||||
override fun onSuccess(compressedImg: String) {
|
||||
FileModel.get()
|
||||
.uploadFile(compressedImg)
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe { url: String?, throwable: Throwable? ->
|
||||
if (throwable != null) {
|
||||
SingleToastUtil.showToast("上传失败")
|
||||
} else {
|
||||
ImageLoadUtils.loadRectImage(
|
||||
context,
|
||||
url,
|
||||
binding.ivPic,
|
||||
R.drawable.default_cover,
|
||||
ScreenUtil.dip2px(10f)
|
||||
)
|
||||
if (url != null) {
|
||||
mUrl = url
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun onFail(e: Throwable) {
|
||||
ToastUtils.show(e.message)
|
||||
}
|
||||
},
|
||||
mostCompressSize = IMAGE_MOST_COMPRESS_SIZE
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 第三方图片裁剪框架Ucrop
|
||||
*/
|
||||
private fun crop(sourceUri: Uri?, sourceSize: Long, destinationUri: Uri?) {
|
||||
if (sourceUri == null || destinationUri == null) {
|
||||
return
|
||||
} //防止too large导致oom,大于100m不处理,内存大小
|
||||
if (BitmapUtil.getSdBitmapSize(sourceUri) >= MAX_BITMAP_SIZE) {
|
||||
ToastUtils.show(R.string.text_bitmap_too_large)
|
||||
return
|
||||
}
|
||||
if (sourceSize > 0) {
|
||||
//不能上传图片的最小文件大小
|
||||
Logger.debug(TAG, "sourceSize: $sourceSize")
|
||||
if (sourceSize < MIN_HEAD_PHOTO_SIZE) {
|
||||
ToastUtils.show(R.string.text_bitmap_too_small)
|
||||
return
|
||||
}
|
||||
}
|
||||
val options = UCrop.Options().apply {
|
||||
setCompressionQuality(100)
|
||||
setShowCropGrid(false)
|
||||
setToolbarColor(
|
||||
ContextCompat.getColor(
|
||||
XChatApplication.gContext,
|
||||
android.R.color.black
|
||||
)
|
||||
)
|
||||
setStatusBarColor(
|
||||
ContextCompat.getColor(
|
||||
XChatApplication.gContext,
|
||||
android.R.color.black
|
||||
)
|
||||
)
|
||||
setHideBottomControls(true)
|
||||
setCompressionFormat(Bitmap.CompressFormat.JPEG)
|
||||
setToolbarCancelDrawable(R.drawable.user_ucrop_ic_closs)
|
||||
setToolbarCropDrawable(R.drawable.user_ucrop_ic_sure)
|
||||
setToolbarWidgetColor(
|
||||
ContextCompat.getColor(
|
||||
XChatApplication.gContext,
|
||||
R.color.color_white
|
||||
)
|
||||
)
|
||||
}
|
||||
context?.let {
|
||||
UCrop.of(sourceUri, destinationUri).withOptions(options).withAspectRatio(16f, 9f)
|
||||
.withMaxResultSize(1422, 800).start(it, this)
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
override fun takeSuccess(result: TResult?) {
|
||||
FileModel.get()
|
||||
@@ -236,7 +401,7 @@ class CreatePrivilegeCardDialog : BaseDialog<DialogCreatePrivilegeCardBinding>()
|
||||
ScreenUtil.dip2px(10f)
|
||||
)
|
||||
if (url != null) {
|
||||
this.url = url
|
||||
mUrl = url
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -250,4 +415,9 @@ class CreatePrivilegeCardDialog : BaseDialog<DialogCreatePrivilegeCardBinding>()
|
||||
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
super.onDestroyView()
|
||||
mJob?.cancel()
|
||||
}
|
||||
|
||||
}
|
@@ -26,15 +26,7 @@ import android.widget.FrameLayout;
|
||||
import android.widget.ImageView;
|
||||
|
||||
import com.netease.nim.uikit.common.util.log.LogUtil;
|
||||
import com.netease.nim.uikit.common.util.sys.ScreenUtil;
|
||||
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMessage;
|
||||
import com.nnbc123.app.ui.utils.ImageLoadUtilsV2;
|
||||
import com.nnbc123.core.im.custom.bean.RoomPrivilegeAttachment;
|
||||
import com.opensource.svgaplayer.SVGACallback;
|
||||
import com.opensource.svgaplayer.SVGADrawable;
|
||||
import com.opensource.svgaplayer.SVGAImageView;
|
||||
import com.opensource.svgaplayer.SVGAParser;
|
||||
import com.opensource.svgaplayer.SVGAVideoEntity;
|
||||
import com.nnbc123.app.R;
|
||||
import com.nnbc123.app.common.svga.SimpleSvgaParseCompletion;
|
||||
import com.nnbc123.app.ui.utils.ImageLoadUtils;
|
||||
@@ -50,6 +42,7 @@ import com.nnbc123.core.gift.bean.GiftReceiver;
|
||||
import com.nnbc123.core.gift.bean.LuckyBagGifts;
|
||||
import com.nnbc123.core.gift.bean.MultiGiftReceiveInfo;
|
||||
import com.nnbc123.core.im.custom.bean.FansTeamMsgAttachment;
|
||||
import com.nnbc123.core.im.custom.bean.RoomPrivilegeAttachment;
|
||||
import com.nnbc123.core.magic.MagicModel;
|
||||
import com.nnbc123.core.magic.ObjectPool;
|
||||
import com.nnbc123.core.magic.bean.MagicInfo;
|
||||
@@ -60,7 +53,13 @@ import com.nnbc123.core.manager.IMNetEaseManager;
|
||||
import com.nnbc123.core.manager.RoomEvent;
|
||||
import com.nnbc123.core.monsterhunting.bean.MonsterAttackInfo;
|
||||
import com.nnbc123.core.room.bean.RoomInfo;
|
||||
import com.nnbc123.library.common.glide.GlideUtils;
|
||||
import com.nnbc123.library.utils.ResolutionUtils;
|
||||
import com.opensource.svgaplayer.SVGACallback;
|
||||
import com.opensource.svgaplayer.SVGADrawable;
|
||||
import com.opensource.svgaplayer.SVGAImageView;
|
||||
import com.opensource.svgaplayer.SVGAParser;
|
||||
import com.opensource.svgaplayer.SVGAVideoEntity;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.net.MalformedURLException;
|
||||
@@ -806,13 +805,8 @@ public class GiftV2View extends FrameLayout implements GiftEffectView.GiftEffect
|
||||
senderPoint = new Point(mScreenWidth / 2 - privilegeWidth / 2, UIUtil.dip2px(context, 25));
|
||||
}
|
||||
SVGAImageView imageView = mMagicViewPool.borrowPrivilegeObject(senderPoint);
|
||||
ImageLoadUtils.loadRectImage(
|
||||
context,
|
||||
giftUrl,
|
||||
imageView,
|
||||
R.drawable.default_cover,
|
||||
ScreenUtil.dip2px(8f)
|
||||
);
|
||||
GlideUtils.instance().loadGiftAndCrossFadeRound(
|
||||
giftUrl, imageView, 8f);
|
||||
|
||||
Keyframe keyTransX3 = (Keyframe.ofFloat(0.5f, center.x - senderPoint.x - privilegeWidth / 2));
|
||||
Keyframe keyTransX4 = (Keyframe.ofFloat(0.8f, center.x - senderPoint.x - privilegeWidth / 2));
|
||||
|
@@ -96,6 +96,7 @@ import com.nnbc123.core.user.bean.UserInfo;
|
||||
import com.nnbc123.core.utils.net.RxHelper;
|
||||
import com.nnbc123.library.bindinglist.IItem;
|
||||
import com.nnbc123.library.bindinglist.MultiTypeAdapter;
|
||||
import com.nnbc123.library.common.glide.GlideUtils;
|
||||
import com.nnbc123.library.utils.FormatUtils;
|
||||
import com.nnbc123.library.utils.ListUtils;
|
||||
import com.nnbc123.library.utils.SingleToastUtil;
|
||||
@@ -841,8 +842,11 @@ public class GiftDialog extends BottomSheetDialog implements View.OnClickListene
|
||||
if (item == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
RoundedImageView imageView = helper.getView(R.id.iv_pic);
|
||||
ImageLoadUtilsV2.loadImage(imageView, item.getCardUrl());
|
||||
GlideUtils.instance().loadGiftAndImage(
|
||||
item.getCardUrl(), imageView);
|
||||
|
||||
if (item.isSelected()) {
|
||||
imageView.setBorderColor(ContextCompat.getColor(mContext, R.color.color_FFDA24));
|
||||
imageView.setBorderWidth((float) 2);
|
||||
|
@@ -282,13 +282,11 @@
|
||||
app:layout_constraintEnd_toEndOf="@+id/ivPicAdd"
|
||||
app:layout_constraintTop_toBottomOf="@+id/ivPicAdd"/>
|
||||
|
||||
<com.nnbc123.app.common.widget.RectRoundImageView
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:id="@+id/ivPic"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
tools:src="@drawable/default_cover"
|
||||
app:borderRadius="10dp"
|
||||
app:type="round"
|
||||
app:layout_constraintStart_toStartOf="@+id/viewPic"
|
||||
app:layout_constraintEnd_toEndOf="@+id/viewPic"
|
||||
app:layout_constraintTop_toTopOf="@+id/viewPic"
|
||||
|
@@ -29,5 +29,5 @@ COMPILE_SDK_VERSION=32
|
||||
MIN_SDK_VERSION=21
|
||||
TARGET_SDK_VERSION=32
|
||||
|
||||
version_name=1.3.0
|
||||
version_code=130
|
||||
version_name=1.3.2
|
||||
version_code=132
|
@@ -25,6 +25,7 @@ import com.bumptech.glide.load.resource.bitmap.CenterCrop
|
||||
import com.bumptech.glide.load.resource.bitmap.CircleCrop
|
||||
import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions
|
||||
import com.bumptech.glide.request.RequestListener
|
||||
import com.bumptech.glide.request.RequestOptions
|
||||
import com.bumptech.glide.request.target.DrawableImageViewTarget
|
||||
import com.bumptech.glide.request.target.Target
|
||||
import com.nnbc123.library.common.transform.AssignScaleTransformation
|
||||
@@ -35,6 +36,7 @@ import com.nnbc123.library.common.util.Utils
|
||||
import jp.wasabeef.glide.transformations.RoundedCornersTransformation
|
||||
import java.io.File
|
||||
|
||||
|
||||
/**
|
||||
* author: create by wushaocheng on 2022/12/29
|
||||
* 图片加载工具类
|
||||
@@ -357,6 +359,89 @@ class GlideUtils {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 加载Uri Gift图片并添加图片过度动画,无默认图无动画
|
||||
* @param uri gift路径
|
||||
*/
|
||||
fun loadUriGiftAndCrossFadeRound(uri: Uri, imageView: ImageView?, radius: Float) {
|
||||
if (imageView == null) {
|
||||
Logger.error(TAG, "loadUriGift imageView is null")
|
||||
return
|
||||
}
|
||||
getGlideConfig(imageView.context)?.apply {
|
||||
this.asGif().load(uri)
|
||||
.transform(
|
||||
CenterCrop(), RoundedCornersTransformation(
|
||||
Utils.dip2px(imageView.context, radius),
|
||||
0, RoundedCornersTransformation.CornerType.ALL
|
||||
)
|
||||
)
|
||||
.transition(DrawableTransitionOptions.withCrossFade()).into(imageView)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 加载Uri Gift图片并添加图片过度动画,无默认图无动画
|
||||
* @param uri gift路径
|
||||
*/
|
||||
fun loadUriGiftAndCrossFadeRound(uri: String, imageView: ImageView?, radius: Float) {
|
||||
if (imageView == null) {
|
||||
Logger.error(TAG, "loadUriGift imageView is null")
|
||||
return
|
||||
}
|
||||
getGlideConfig(imageView.context)?.apply {
|
||||
this.asGif().load(uri)
|
||||
.transform(
|
||||
CenterCrop(), RoundedCornersTransformation(
|
||||
Utils.dip2px(imageView.context, radius),
|
||||
0, RoundedCornersTransformation.CornerType.ALL
|
||||
)
|
||||
)
|
||||
.transition(DrawableTransitionOptions.withCrossFade()).into(imageView)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 加载Uri Gift图片并添加图片过度动画,无默认图无动画
|
||||
* @param uri gift路径
|
||||
*/
|
||||
fun loadGiftAndCrossFadeRound(uri: String, imageView: ImageView?, radius: Float) {
|
||||
if (imageView == null) {
|
||||
Logger.error(TAG, "loadUriGift imageView is null")
|
||||
return
|
||||
}
|
||||
val options = RequestOptions().diskCacheStrategy(DiskCacheStrategy.RESOURCE)
|
||||
getGlideConfig(imageView.context)?.apply {
|
||||
this.load(uri)
|
||||
.apply(options)
|
||||
.transform(
|
||||
CenterCrop(), RoundedCornersTransformation(
|
||||
Utils.dip2px(imageView.context, radius),
|
||||
0, RoundedCornersTransformation.CornerType.ALL
|
||||
)
|
||||
)
|
||||
.transition(DrawableTransitionOptions.withCrossFade())
|
||||
.into(imageView)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 加载Uri Gift图片并添加图片过度动画,无默认图无动画
|
||||
* @param uri gift路径
|
||||
*/
|
||||
fun loadGiftAndImage(uri: String, imageView: ImageView?) {
|
||||
if (imageView == null) {
|
||||
Logger.error(TAG, "loadUriGift imageView is null")
|
||||
return
|
||||
}
|
||||
val options = RequestOptions().diskCacheStrategy(DiskCacheStrategy.RESOURCE)
|
||||
getGlideConfig(imageView.context)?.apply {
|
||||
this.asBitmap()
|
||||
.load(uri)
|
||||
.apply(options)
|
||||
.into(imageView)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 加载图片时显示过度动画并设置图形变换,缓存模式,无占位图
|
||||
@@ -1452,7 +1537,13 @@ class GlideUtils {
|
||||
.into(imageView)
|
||||
}
|
||||
}
|
||||
fun load(url: String?, @DrawableRes defaultRes: Int, @DrawableRes errorRes: Int,imageView: ImageView?) {
|
||||
|
||||
fun load(
|
||||
url: String?,
|
||||
@DrawableRes defaultRes: Int,
|
||||
@DrawableRes errorRes: Int,
|
||||
imageView: ImageView?
|
||||
) {
|
||||
if (imageView == null) {
|
||||
Logger.error(TAG, "load url is invalid or imageViw is null")
|
||||
return
|
||||
@@ -1464,6 +1555,7 @@ class GlideUtils {
|
||||
.into(imageView)
|
||||
}
|
||||
}
|
||||
|
||||
private fun getGlideConfig(context: Context): RequestManager? {
|
||||
if (checkActivityIsDestroy(context)) return null
|
||||
|
||||
|
Reference in New Issue
Block a user