Don't use Glide to load drawable resources

Loading drawables using Glide while the size of the ImageView
is not known yet appears to result in a blurry mess.
This commit is contained in:
Alexander Bakker 2024-03-24 17:58:55 +01:00
parent f9f37d30b2
commit 9815e510df
3 changed files with 5 additions and 19 deletions

View File

@ -4,10 +4,8 @@ import android.graphics.drawable.Drawable;
import android.os.Build;
import android.widget.ImageView;
import androidx.annotation.DrawableRes;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.RawRes;
import com.amulyakhare.textdrawable.TextDrawable;
import com.beemdevelopment.aegis.helpers.TextDrawableHelper;
@ -38,21 +36,6 @@ public class GlideHelper {
loadIconFile(rm, icon.getFile(), icon.getIconType(), targetView);
}
public static void loadResource(RequestManager rm, @RawRes @DrawableRes @Nullable Integer resourceId, ImageView targetView) {
loadResource(rm, resourceId, null, targetView);
}
public static void loadResource(RequestManager rm, @RawRes @DrawableRes @Nullable Integer resourceId, @Nullable Integer tint, ImageView targetView) {
setCommonOptions(rm.load(resourceId), null)
.listener(new ViewReadyListener<>(view -> {
if (tint != null) {
view.setColorFilter(tint);
}
setLayerType(targetView, IconType.INVALID);
}))
.into(targetView);
}
public static void loadEntryIcon(RequestManager rm, VaultEntry entry, ImageView targetView) {
if (entry.hasIcon()) {
setCommonOptions(rm.load(entry.getIcon()), entry.getIcon().getType()).into(targetView);

View File

@ -47,7 +47,8 @@ public class AssignIconHolder extends RecyclerView.ViewHolder implements AssignI
if (_entry.getNewIcon() != null) {
GlideHelper.loadIcon(Glide.with(_view.getContext()), _entry.getNewIcon(), _newIcon);
} else {
GlideHelper.loadResource(Glide.with(_view.getContext()), R.drawable.ic_unselected, _newIcon);
Glide.with(_view.getContext()).clear(_newIcon);
_newIcon.setImageResource(R.drawable.ic_unselected);
}
_btnReset.setVisibility(_entry.getNewIcon() != null ? View.VISIBLE : View.INVISIBLE);

View File

@ -39,8 +39,10 @@ public class IconHolder extends RecyclerView.ViewHolder {
public void loadIcon(Context context) {
if (_isCustom) {
Glide.with(context).clear(_imageView);
int tint = MaterialColors.getColor(itemView, com.google.android.material.R.attr.colorOnSurfaceVariant);
GlideHelper.loadResource(Glide.with(context), R.drawable.ic_outline_add_24, tint, _imageView);
_imageView.setColorFilter(tint);
_imageView.setImageResource(R.drawable.ic_outline_add_24);
} else {
GlideHelper.loadIconFile(Glide.with(context), _iconFile, _iconType, _imageView);
}