Android 点击图片全屏预览 -——ZoomPreviewPicture默认预览使用
GitHub链接
效果图先上。
implementation 'com.ycjiang:ImagePreview:2.3.5'
在Activity中初始化
@Overridepublic void onCreate() {super.onCreate();ZoomMediaLoader.getInstance().init(new TestImageLoader());}
自定义图片加载配置类 TestImageLoader (Glide 4.0以上)
import android.content.Context;
import android.graphics.Bitmap;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.widget.ImageView;import com.bumptech.glide.Glide;
import com.bumptech.glide.load.DataSource;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.load.engine.GlideException;
import com.bumptech.glide.load.resource.gif.GifDrawable;
import com.bumptech.glide.request.RequestListener;
import com.bumptech.glide.request.RequestOptions;
import com.bumptech.glide.request.target.SimpleTarget;
import com.bumptech.glide.request.target.Target;
import com.bumptech.glide.request.transition.Transition;
import com.previewlibrary.loader.IZoomMediaLoader;
import com.previewlibrary.loader.MySimpleTarget;public class TestImageLoader implements IZoomMediaLoader {@Overridepublic void displayImage(@NonNull Fragment context, @NonNull String path, final ImageView imageView, @NonNull final MySimpleTarget simpleTarget) {Glide.with(context).asBitmap().load(path).apply(new RequestOptions().fitCenter()).into(new SimpleTarget<Bitmap>() {@Overridepublic void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {simpleTarget.onResourceReady();imageView.setImageBitmap(resource);}});}@Overridepublic void displayGifImage(@NonNull Fragment context, @NonNull String path, ImageView imageView, @NonNull final MySimpleTarget simpleTarget) {Glide.with(context).asGif().load(path)//可以解决gif比较几种时 ,加载过慢 //DiskCacheStrategy.NONE.apply(new RequestOptions().diskCacheStrategy(DiskCacheStrategy.RESOURCE).dontAnimate())//去掉显示动画.listener(new RequestListener<GifDrawable>() {@Overridepublic boolean onLoadFailed(@Nullable GlideException e, Object model, Target<GifDrawable> target, boolean isFirstResource) {simpleTarget.onResourceReady();return false;}@Overridepublic boolean onResourceReady(GifDrawable resource, Object model, Target<GifDrawable> target, DataSource dataSource, boolean isFirstResource) {simpleTarget.onLoadFailed(null);return false;}}).into(imageView);}@Overridepublic void onStop(@NonNull Fragment context) {Glide.with(context).onStop();}@Overridepublic void clearMemory(@NonNull Context c) {Glide.get(c).clearMemory();}
}
自定义实体类
import android.graphics.Rect;
import android.os.Parcel;
import android.support.annotation.Nullable;import com.previewlibrary.enitity.IThumbViewInfo;/**** @author ludoven* @date 2020/4/22* Deprecated: 图片预览实体类**/
public class UserViewInfo implements IThumbViewInfo {//图片地址private String url;// 记录坐标private Rect mBounds;private String user = "用户字段";private String videoUrl;public UserViewInfo(String url) {this.url = url;}public UserViewInfo(String videoUrl,String url) {this.url = url;this.videoUrl = videoUrl;}public String getUser() {return user;}public void setUser(String user) {this.user = user;}@Overridepublic String getUrl() {//将你的图片地址字段返回return url;}public void setUrl(String url) {this.url = url;}@Overridepublic Rect getBounds() {//将你的图片显示坐标字段返回return mBounds;}@Nullable@Overridepublic String getVideoUrl() {return videoUrl;}public void setBounds(Rect bounds) {mBounds = bounds;}public void setVideoUrl(String videoUrl) {this.videoUrl = videoUrl;}@Overridepublic int describeContents() {return 0;}@Overridepublic void writeToParcel(Parcel dest, int flags) {dest.writeString(this.url);dest.writeParcelable(this.mBounds, flags);dest.writeString(this.user);dest.writeString(this.videoUrl);}protected UserViewInfo(Parcel in) {this.url = in.readString();this.mBounds = in.readParcelable(Rect.class.getClassLoader());this.user = in.readString();this.videoUrl = in.readString();}public static final Creator<UserViewInfo> CREATOR = new Creator<UserViewInfo>() {@Overridepublic UserViewInfo createFromParcel(Parcel source) {return new UserViewInfo(source);}@Overridepublic UserViewInfo[] newArray(int size) {return new UserViewInfo[size];}};
}
这里使用的是默认的预览,自定义预览详情见GitHub地址
List<UserViewInfo> stringList=new ArrayList<>();GPreviewBuilder.from(this).setData(stringList).setCurrentIndex(position).setSingleFling(true)//是否在黑屏区域点击返回.setDrag(true)//是否禁用图片拖拽返回.setType(GPreviewBuilder.IndicatorType.Number)//指示器类型.start();//启动
Android 点击图片全屏预览 -——ZoomPreviewPicture默认预览使用相关推荐
- Android 点击图片全屏
2019独角兽企业重金招聘Python工程师标准>>> 最近做一个项目类似于QQ空间,做到照片浏览的功能,对于QQ空间中点击图片放大至全屏,感觉效果很赞,于是也做了个类似的效果.如下 ...
- android从九宫格全屏预览,仿微信朋友圈展示图片的九宫格图片展示控件,支持点击图片全屏预览大图...
AssNineGridView 仿微信朋友圈展示图片的九宫格图片展示控件,支持点击图片全屏预览大图(可自定义). 写在前面 这是一个九宫格控件,本来是很久之前就写好了,现在才开源出来,也是看了很多优秀 ...
- 手机端点击图片全屏预览
<!doctype html> 手机端点击图片全屏预览 <div class="category"><img src="1.jpg" ...
- html+js 点击图片放大、点击图片全屏
html 点击图片放大,图片全屏,再点击关闭全屏,我这里直接整理成一个js,使用方便. 使用步骤: 1.引用 jq 2.引用 imgEnlarge.js. 3.没了. 直接上代码,这个是测试代码. & ...
- html实现点击图片全屏显示,用vue实现点击图片预览浏览器满屏大图
前提 安装插件 npm install vue-directive-image-previewer -D 引入插件 import VueDirectiveImagePreviewer from 'vu ...
- android引导页图片全屏适配,关于图片适配不同尺寸的image View(实战)
分享人:广州华软佐罗 一. 前言 在前端开发过程中,设计稿中往往只提供一张图片,但是app内需要用到的尺寸各种各样. 同时图片不仅是信息的直接表达,也会为网站起到美观点缀的作用,图片的变形.过分裁切会 ...
- Android 点击图片放大至全屏 再次点击关闭过度动画 Shared Element效果(共享元素效果)
Android 点击图片放大至全屏 再次点击关闭过度动画 最近项目需要给用户一个体验优化,各种查阅,然后改了很多地方,类似于图片的点击预览,消息列表的点击流畅过渡. Shared Element效果( ...
- uni-app 轮播图视频+图片 视频图片全屏预览 两种方法
项目场景: 在做商城项目的时候,商品详情的轮播图需要同时显示视频和图片,并且能够全局预览 解决方案: 如果项目里有uview这个组件库,可以通过swiper轮播图的指定类型进行解决,点击这里进行跳转 ...
- 微信小程序图片全屏预览组件,并解决svg真机显示黑屏问题
自己码了个微信小程序图片全屏预览组件,并解决了svg真机显示黑屏问题(即png等格式可以正常显示,但就svg无法显示). /*** 微信小程序图片预览组件* 1.支持预览svg.png.jpeg.jp ...
- Android 图片全屏适配各种屏幕小技巧
场景: App启动页加载一张从网络上下载的图片,全屏展示. 问题: 图片全屏展示如何适配各种屏幕? 解决方法: 1.图片周围采用高斯模糊处理,其他地方全部用白色填充. 2.图片周围采用白色渐变,其他地 ...
最新文章
- 安装HikVision(海康威视)网络摄像头
- 数据中心智能电源分配器(PDU)的趋势与应用
- 有三AI模拟面试服务上线,一对一服务助你求职
- PYTHON——TCPUDP:Socket实现远程执行命令
- mysql 建库字段_MySQL 的字段类型以及建库策略
- PingingLab传世经典系列《CCNA完全配置宝典》-2.7 EIGRP基本配置
- 人脸识别算法二:Fisherface(LDA)
- 符合推理的解决方法 NSlover
- 官宣!VS Code Python 全新功能全球首发!
- Security+ 学习笔记17 公钥基础设施
- Python学习---Python数据类型1206
- [译]Chipmunk教程 - 5 跟踪球体的运动
- 好用的论文翻译工具集锦
- Thinkphp 6.0商城系统,B2C商城系统全新UI
- 手机麦克风声音太大_让手机麦克风声音变大的软件
- 常用的操作系统有哪些?起什么作用?
- 恢复matlab文件关联
- ssdb mysql_成都项目中因为MYSQL与SSDB备分时间不一致,导致主键产生器错误解决一例...
- Word Embedding 知识总结
- android oreo 老机型,三年的老机型,一加手机1也有安卓8.0了!
热门文章
- 【JZOJ A组】Melancholy
- 团队管理31-典型场景(向上沟通)
- mybatis学习4
- php创建菜单_php实现微信公众号创建自定义菜单
- Flutter--高德地图使用指南
- win10固态硬盘分区 整数_台式机械硬盘怎么安装?机械硬盘安装图解教程(SATA固态可参考)...
- 今天学习腌菜,啦啦啦啦啦
- JavaScript在发送AjAX请求时,URL的域名地址是使用绝对地址还是相对地址?
- [MySQL 源码] Innodb Pessimistic Insert流程
- nginx根据post请求体内容转发