描述:

效果图:

使用框架:transferee 来实现

这里采用的是transferee的glide方法:https://github.com/Hitomis/transferee/blob/master/app/src/main/java/com/hitomi/transferimage/activity/glide/GlideNoThumActivity.java

代码:

Gradle引入jar包:

 

compile 'com.github.Hitomis.transferee:Transferee:v1.1.0'    compile 'com.github.Hitomis.transferee:GlideLoader:v1.1.0'

 

GlideNoThumActivity.java类:

 

package com.hitomi.transferimage.activity.glide;import android.view.View;import android.widget.GridView;import android.widget.ImageView;import android.widget.Toast;import com.bumptech.glide.Glide;import com.bumptech.glide.request.RequestOptions;import com.hitomi.tilibrary.style.index.NumberIndexIndicator;import com.hitomi.tilibrary.style.progress.ProgressPieIndicator;import com.hitomi.tilibrary.transfer.TransferConfig;import com.hitomi.tilibrary.transfer.Transferee;import com.hitomi.transferimage.R;import com.hitomi.transferimage.activity.BaseActivity;import com.wepie.glide4loader.Glide4ImageLoader;import com.zhy.adapter.abslistview.CommonAdapter;import com.zhy.adapter.abslistview.ViewHolder;import java.util.ArrayList;public class GlideNoThumActivity extends BaseActivity {    private RequestOptions options;    {        sourceImageList = new ArrayList<>();        sourceImageList.add("http://t2.27270.com/uploads/tu/201706/9999/d38274f15c.jpg");        sourceImageList.add("http://t2.27270.com/uploads/tu/201706/9999/061548f1fb.jpg");        sourceImageList.add("http://t2.27270.com/uploads/tu/201706/9999/4a85dd9bd9.jpg");        sourceImageList.add("http://t2.27270.com/uploads/tu/201706/9999/a6c57f438d.jpg");        sourceImageList.add("http://t2.27270.com/uploads/tu/201706/9999/b6ae25c618.jpg");        sourceImageList.add("http://t2.27270.com/uploads/tu/201612/562/lua4uwojfds.jpg");        sourceImageList.add("http://t2.27270.com/uploads/tu/201612/562/4hp4d1fcocu.jpg");        sourceImageList.add("http://t2.27270.com/uploads/tu/201612/562/d2madqozild.jpg");        sourceImageList.add("http://ww1.sinaimg.cn/large/9be2329dgw1etlyb1yu49j20c82p6qc1.jpg");    }    @Override    protected int getContentView() {        return R.layout.activity_grid_view;    }    @Override    protected void initView() {        gvImages = (GridView) findViewById(R.id.gv_images);    }    @Override    protected void testTransferee() {        config = TransferConfig.build()                .setSourceImageList(sourceImageList)                .setMissPlaceHolder(R.mipmap.ic_empty_photo)                .setErrorPlaceHolder(R.mipmap.ic_empty_photo)                .setProgressIndicator(new ProgressPieIndicator())                .setIndexIndicator(new NumberIndexIndicator())                .setJustLoadHitImage(true)                .setImageLoader(Glide4ImageLoader.with(getApplicationContext()))                .setOnLongClcikListener(new Transferee.OnTransfereeLongClickListener() {                    @Override                    public void onLongClick(ImageView imageView, int pos) {                        saveImageByUniversal(imageView);                    }                })                .create();        options = new RequestOptions().centerCrop()                .placeholder(R.mipmap.ic_empty_photo);        gvImages.setAdapter(new NineGridAdapter());    }    @Override    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {        if (requestCode != WRITE_EXTERNAL_STORAGE) {            Toast.makeText(this, "请允许获取相册图片文件写入权限", Toast.LENGTH_SHORT).show();        }    }    private class NineGridAdapter extends CommonAdapter {        public NineGridAdapter() {            super(GlideNoThumActivity.this, R.layout.item_grid_image, sourceImageList);        }        @Override        protected void convert(ViewHolder viewHolder, final String item, final int position) {            ImageView imageView = viewHolder.getView(R.id.image_view);            Glide.with(GlideNoThumActivity.this)                    .load(item)                    .apply(options)                    .into(imageView);            imageView.setOnClickListener(new View.OnClickListener() {                @Override                public void onClick(View v) {                    config.setNowThumbnailIndex(position);                    config.setOriginImageList(wrapOriginImageViewList(sourceImageList.size()));                    transferee.apply(config).show(new Transferee.OnTransfereeStateChangeListener() {                        @Override                        public void onShow() {                            Glide.with(GlideNoThumActivity.this).pauseRequests();                        }                        @Override                        public void onDismiss() {                            Glide.with(GlideNoThumActivity.this).resumeRequests();                        }                    });                }            });        }    }protected List wrapOriginImageViewList(int size) {        List originImgList = new ArrayList<>();        for (int i = 0; i < size; i++) {            ImageView thumImg = (ImageView) ((LinearLayout) gridview.getChildAt(i)).getChildAt(0);            originImgList.add(thumImg);        }        return originImgList;    }}

 


 

ฅ՞•ﻌ•՞ฅ ~ 厚着脸皮要个赞赏哈 ~ ฅ՞•ﻌ•՞ฅ

 

更多相关文章

  1. Android(安卓)渐变色沉浸式状态栏
  2. android存取数据方式:文件、SharedPreferences
  3. [Android]自定义弹幕View
  4. Android(安卓)全屏与沉浸式
  5. Android之系统自带的文字外观设置及实际显示效果图
  6. Android(安卓)开源项目分类汇总
  7. Android(安卓)轻量级存储方案的前世今生
  8. 关于android 4.4 以上写入外部存储卡
  9. 获取Android(安卓)System 写入权限

随机推荐

  1. android SD 卡写操作
  2. Android 银行卡手机号带空格格式
  3. Android gallery与BaseaDapter的使用
  4. Android(安卓)输入法遮挡问题
  5. Android 启动时间优化
  6. kotlin开发Android入门篇一
  7. android小游戏代码
  8. 智能手机软件平台 Android VS iPhone OS:
  9. 为android封装的百度定位组件
  10. Android学习笔记(6)————Android的线