UserCenterImgPageAdapter.java 3.6 KB
package com.chudiangameplay.android.adapter;

import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;

import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.chudiangameplay.android.R;
import com.chudiangameplay.android.bean.UploadFileInfo;
import com.chudiangameplay.android.interface_.CommCallBack;
import com.chudiangameplay.android.tool.Log;
import com.chudiangameplay.android.util.BitmapUtil;
import com.chudiangameplay.android.util.GlideUtil;
import com.chudiangameplay.android.util.Util;
import com.hyphenate.chat.EMConversation;

import java.util.ArrayList;
import java.util.List;

import uk.co.senab.photoview.PhotoView;
import uk.co.senab.photoview.PhotoViewAttacher;

public class UserCenterImgPageAdapter extends PagerAdapter {

    private List<UploadFileInfo> imgs = new ArrayList<>();
    private Context context;
    CommCallBack commCallBack;
    int width =0;
    List<View> mViews = new ArrayList<>();

    public UserCenterImgPageAdapter(Context context, List<UploadFileInfo> imgs, CommCallBack commCallBack) {
        width = (int) (context.getResources().getDisplayMetrics().widthPixels * 2f / 3f);
        this.context = context;
        this.commCallBack = commCallBack;
        this.imgs.addAll(imgs);

        for (int i = 0; i < 4; i++) {
            View view = View.inflate(context, R.layout.item_usercenter_headimgs, null);
            mViews.add(view);
        }
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        int i = position % 4;
        View view = mViews.get(i);
        ImageView imageView = view.findViewById(R.id.iv_img);
        if (imageView != null) {
//            BitmapUtil.releaseImageViewResouce(imageView);
        }
        container.removeView(view);
    }

    @Override
    public Object instantiateItem(ViewGroup container, final int position) {
        UploadFileInfo fileInfo = imgs.get(position);

        int i = position % 4;
        View view = mViews.get(i);
        ImageView imageView = view.findViewById(R.id.iv_img);
        ImageView iv_video = view.findViewById(R.id.iv_video);


        if (fileInfo.isVideo) {
            iv_video.setVisibility(View.VISIBLE);
            String thembUrl = fileInfo.url + "?spm=a2c4g.11186623.2.9.3db83c10D2Oz0S&x-oss-process=video/snapshot,t_1000,f_jpg,w_800,h_600,m_fast";
            GlideUtil.displayImage(context, thembUrl, imageView, R.drawable.ico_default_img_fang);
//            GlideUtil.displayImgWithSize(context, fileInfo.snapUrl, imageView, R.drawable.ico_default_img_fang, width, width);
        } else {
            iv_video.setVisibility(View.GONE);
//            GlideUtil.displayImage(context, fileInfo.url, imageView, R.drawable.ico_default_img_fang);
            GlideUtil.displayImgWithSize(context, fileInfo.url, imageView, R.drawable.ico_default_img_fang, width, width);
        }

        view.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (commCallBack != null) {
                    commCallBack.onResult(position);
                }
            }
        });
        container.addView(view);
        return view;
    }

    @Override
    public int getCount() {
        return imgs.size();
    }

    @Override
    public boolean isViewFromObject(View view, Object object) {
        return view == object;
    }

    @Override
    public int getItemPosition(Object object) {
        return POSITION_NONE;
    }
}