当前位置:   article > 正文

android点击全屏预览照片第三方库使用_android点击照片全屏显示

android点击照片全屏显示
android点击全屏预览照片第三方库使用-imgepreviewlibrary

移动端我们经常会遇到放大预览照片,如果是一张照片,那就全屏展示图片就好了,但是如果是一个列表,滑动查看,我们一般会借助viewpager进行实现,但是每次自己弄,感觉效率很低,今天给大家推荐一个第三方库,很轻松实现,扩展也还可以哦。

这是点击预览的效果图,下边是数字,也可以显示成点

微信截图_20180801172357.png

1.安装配置

先添加依赖

implementation 'com.ycjiang:imgepreviewlibrary:1.1.3'

我们需要自定义一个类ImageLoader ,进行图片加载,不限制框架,一般使用glide,当然你也可以使用其他的。

  1. public class ImageLoader implements IZoomMediaLoader {
  2. RequestOptions options;
  3. {
  4. options = new RequestOptions()
  5. .centerCrop()
  6. .placeholder(R.drawable.ic_default_image)
  7. .error(R.drawable.ic_default_image)
  8. .priority(Priority.HIGH);
  9. }
  10. @Override
  11. public void displayImage(Fragment context, String path, final MySimpleTarget<Bitmap> simpleTarget) {
  12. Glide.with(context)
  13. .asBitmap()
  14. .load(path)
  15. .apply(options)
  16. .into(new SimpleTarget<Bitmap>() {
  17. @Override
  18. public void onResourceReady(Bitmap resource, Transition<? super Bitmap> transition) {
  19. simpleTarget.onResourceReady(resource);
  20. }
  21. @Override
  22. public void onLoadStarted(Drawable placeholder) {
  23. super.onLoadStarted(placeholder);
  24. simpleTarget.onLoadStarted();
  25. }
  26. @Override
  27. public void onLoadFailed(Drawable errorDrawable) {
  28. super.onLoadFailed(errorDrawable);
  29. simpleTarget.onLoadFailed(errorDrawable);
  30. }
  31. });
  32. }
  33. @Override
  34. public void onStop(@NonNull Fragment context) {
  35. Glide.with(context).onStop();
  36. }
  37. @Override
  38. public void clearMemory(@NonNull Context c) {
  39. Glide.get(c).clearMemory();
  40. }
  41. }

初始化的时候,初始化图片加载类。

 ZoomMediaLoader.getInstance().init(new ImageLoader());
2.项目使用

我们在点击的回调函数中,打开图片预览代码,根据自己的实际情况调整。

  1. //组织数据
  2. ArrayList<ThumbViewInfo> mThumbViewInfoList = new ArrayList<>(); // 这个最好定义成成员变量
  3. ThumbViewInfo item;
  4. mThumbViewInfoList.clear();
  5. for (int i = 0;i < resultList.size(); i++) {
  6. Rect bounds = new Rect();
  7. //new ThumbViewInfo(图片地址);
  8. item=new ThumbViewInfo(resultList.get(i).getOriginUrl());
  9. item.setBounds(bounds);
  10. mThumbViewInfoList.add(item);
  11. }
  12. //打开预览界面
  13. GPreviewBuilder.from(Context context)
  14. //是否使用自定义预览界面,当然8.0之后因为配置问题,必须要使用
  15. .to(ImageLookActivity.class)
  16. .setData(mThumbViewInfoList)
  17. .setCurrentIndex(position)
  18. .setSingleFling(true)
  19. .setType(GPreviewBuilder.IndicatorType.Number)
  20. // 小圆点
  21. // .setType(GPreviewBuilder.IndicatorType.Dot)
  22. .start();//启动
3.自定义预览界面

自定义预览图片,可以扩展加一下自己的按钮功能等。

  1. public class ImageLookActivity extends GPreviewActivity {
  2. /***
  3. * 重写该方法
  4. * 使用你的自定义布局
  5. **/
  6. @Override
  7. public int setContentLayout() {
  8. return R.layout.activity_image_look;
  9. }
  10. }

自定义预览的布局

  1. <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:tools="http://schemas.android.com/tools"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. tools:context=".activity.ImageLookActivity">
  6. // 这是第三方库提供的,也就是默认的布局文件
  7. <include layout="@layout/activity_image_preview_photo"/>
  8. </FrameLayout>
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/99063
推荐阅读
相关标签
  

闽ICP备14008679号