Skip to content

Commit

Permalink
...
Browse files Browse the repository at this point in the history
  • Loading branch information
Theoneee committed Mar 8, 2024
1 parent 65a9b7b commit 66e7dd6
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;

import androidx.annotation.NonNull;

Expand All @@ -12,6 +13,7 @@
import com.theone.mvvm.core.R;
import com.theone.mvvm.core.base.adapter.holder.TheBasePreviewHolder;
import com.theone.mvvm.core.base.adapter.holder.ThePreviewAudioHolder;
import com.theone.mvvm.core.base.adapter.holder.ThePreviewImageHolder;
import com.theone.mvvm.core.base.adapter.holder.ThePreviewVideoHolder;

import java.util.LinkedHashMap;
Expand All @@ -27,6 +29,7 @@ public class ThePicturePreviewAdapter<T extends IImageUrl> extends BaseQuickAdap

private final TheBasePreviewHolder.OnPreviewEventListener onPreviewEventListener;
private final LinkedHashMap<Integer, TheBasePreviewHolder> mHolderCache = new LinkedHashMap<>();
private ImageView.ScaleType scaleType = ImageView.ScaleType.FIT_CENTER;

public ThePicturePreviewAdapter(TheBasePreviewHolder.OnPreviewEventListener onPreviewEventListener) {
super(0);
Expand Down Expand Up @@ -58,6 +61,7 @@ public void onBindViewHolder(@NonNull TheBasePreviewHolder holder, int position)
IImageUrl media = getData().get(position);
mHolderCache.put(position, holder);
holder.bindData(media, position);
holder.setImageViewScaleType(scaleType);
}

@Override
Expand Down Expand Up @@ -99,6 +103,11 @@ public void setVideoPlayButtonUI(int position) {
}
}

public void setImageViewScaleType(ImageView.ScaleType scaleType){
this.scaleType = scaleType;
}


/**
* 释放当前视频相关
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ public class TheBasePreviewHolder extends BaseViewHolder {
protected final int screenAppInHeight;
protected final GlideEngine imageEngine;
public PhotoView coverImageView;
private ImageView.ScaleType scaleType = ImageView.ScaleType.FIT_CENTER;


public static TheBasePreviewHolder generate(ViewGroup parent, int viewType, int resource) {
Expand All @@ -68,6 +69,10 @@ protected void findViews(View itemView) {
this.coverImageView = itemView.findViewById(R.id.preview_image);
}

public void setImageViewScaleType(ImageView.ScaleType scaleType){
this.scaleType = scaleType;
}

public void clearCache(){
this.coverImageView.setImageBitmap(null);
}
Expand Down Expand Up @@ -130,7 +135,7 @@ protected void loadBitmapCallback(IImageUrl media, Bitmap bitmap) {
if (PictureMimeType.isUrlHasWebp(path)
|| PictureMimeType.isUrlHasGif(path)) {
if (imageEngine != null) {
coverImageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
coverImageView.setScaleType(scaleType);
imageEngine.loadImage(coverImageView.getContext(), path, coverImageView);
}
} else {
Expand All @@ -143,13 +148,11 @@ protected void loadBitmapCallback(IImageUrl media, Bitmap bitmap) {
media.setHeight(bitmap.getHeight());
}
int width, height;
ImageView.ScaleType scaleType;
if (MediaUtils.isLongImage(bitmap.getWidth(), bitmap.getHeight())) {
scaleType = ImageView.ScaleType.CENTER_CROP;
width = screenWidth;
height = screenHeight;
} else {
scaleType = ImageView.ScaleType.FIT_CENTER;
int[] size = getSize(media);
boolean isHaveSize = bitmap.getWidth() > 0 && bitmap.getHeight() > 0;
width = isHaveSize ? bitmap.getWidth() : size[0];
Expand Down

0 comments on commit 66e7dd6

Please sign in to comment.