描述:

效果图:

使用框架: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 應用框架原理與程式設計36 技有感。
  2. Android 网络通信框架Volley简介(Google IO 2013)
  3. Android快速开发框架dyh详解(三)---网络层的使用
  4. android 开发常用框架、组件 -UI篇
  5. XUI 一个简洁而又优雅的Android原生UI框架
  6. Android异步网络请求框架-Volley
  7. 【android】ORMLite框架 的使用方法---给你的数据库操作插上翅膀
  8. Android黑盒自动化测试框架Robotium
  9. Android使用okhttp框架实现带参数Get和Post请求(附服务端完整代码

随机推荐

  1. android 播放GIF动画
  2. Android面试题之二(中)
  3. 【攻克Android(安卓)(37):XML解析之二】SA
  4. android 多进程下的坑
  5. Android(安卓)Webservice 开发总结
  6. PHP学习之初:基本语法
  7. Android(安卓)画顶部带锯齿的长方形
  8. Android线程安全
  9. Android内核源码Abi目录学习笔记
  10. Android(安卓)Mms专题——接收信息流程