1、先来看看效果

2、使用方法

在xml中添加如下代码:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.imagepreviewdemo.MainActivity"><!--作为背景-->
    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@android:color/black"
        android:id="@+id/bg"></FrameLayout><com.imagepreviewdemo.view.ImagesPreView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/preView"
        ></com.imagepreviewdemo.view.ImagesPreView></FrameLayout>
在activity的onCreate()中初始化
final ImagesPreView preView=(ImagesPreView)findViewById(R.id.preView);
final FrameLayout backGround=(FrameLayout)findViewById(R.id.bg);
//添加图片资源
List<Integer>resources=new ArrayList<Integer>();
resources.add(R.drawable.timg_1);
resources.add(R.drawable.timg_2);
resources.add(R.drawable.timg_3);
//初始化
preView.setResources(resources,getSupportFragmentManager());
//设置当前显示的图片
preView.setCurrentItem(0);
//设置背景View,会随着图片向下滑动渐隐
preView.setBackGroundView(backGround);
//设置图片向下滑动事件监听
preView.setOnScrollListener(new ScaleImagView.OnScrollListener() {@Override
    public void onScroll(float scroll) {//scroll值为向下滑动的距离和屏幕总高度百分比,值0~100之间
        if (scroll>50){//当图片向下滑动的距离超过50%的屏幕总高度时,设置打开松开手指时的事件监听
            preView.setTouchUpEnable(true);}}
});
//松开手指时的事件监听,如果没有设置preView.setTouchUpEnable(true),以下方法将不会被执行
preView.setOnTouchUpListener(new ScaleImagView.OnTouchUpListener() {@Override
    public void onTouchUp() {}
});
//设置图片滑动监听
preView.setOnImageChangeListener(new ImagesPreView.OnImageChangeListener() {@Override
    public void OnImageChange(int position) {}
});
除了传drawable资源以外还可以传url资源
List<String>urlStrings=new ArrayList<>();
urlStrings.add("http://192.168.1.39:90/Photos/a.png");
urlStrings.add("http://192.168.1.39:90/Photos/b.png");
preView.setFilesOrUrl(urlStrings,getSupportFragmentManager());
本地file资源
List<String>filePaths=new ArrayList<>();
filePaths.add("/storage/sdcard0/a.png");
filePaths.add("/storage/sdcard0/b.png");
preView.setFilesOrUrl(filePaths,getSupportFragmentManager());

3、用到的开源框架

Glide

4、源码地址

欢迎勘误
点击打开链接

仿微信朋友圈图片预览自定义View相关推荐

  1. android模仿微信朋友圈图片预览转场缩放动画

    先上效果图 其实实现起来非常简单,比如现在有两个Activity:GridActivity跳转DetailActivity,首先在GridActivity跳转DetailActivity的代码上加入A ...

  2. Android仿微信朋友圈图片上传选择器布局

    标题有点绕口,直接上一个效果图,如果符合你的需求的请在往下看,避免浪费你的时间 当当当当,标红的区域就是今天我们要干的活了 ,搞起来! 思路: 对android有点了解的人都知道在列表显示中我们可以使 ...

  3. 安卓开发仿微信图片拖拽_Android仿微信朋友圈图片浏览器(支持图片手势缩放,拖动)...

    [实例简介] Android仿微信朋友圈图片浏览器(支持图片手势缩放,拖动) [实例截图] [核心代码] ImageDemo-2014-02-18 └── ImageDemo-2014-02-18 ├ ...

  4. Android仿微信朋友圈图片展示效果,图片查看器

    现在越来越多的APP都会有图片展示,这里是模仿微信朋友圈图片展示效果,图片查看器. 主要分为4部分: 1.透明Activity 2.计算gridView下iamgeView Item所在位置 3.一张 ...

  5. 仿微信朋友圈图片上传

    先贴上地址 项目地址 介绍 仿微信朋友圈的图片上传,图片上传缓存,断网后重新连接网络或者APP重启,自动上传未上传的图片 Config的阿里云配置需要自己添加 public class Config ...

  6. RN仿微信朋友圈图片拖拽删除

    目录 前言 初始时 渲染时 开始拖拽 拖拽中 拖拽结束 拖拽删除 参考链接 前言 之前负责的一个需求,让在RN端做仿微信朋友圈的图片删除和排序,由于经验和时间限制,就跟PM协商改为点击删除,由此欠下一 ...

  7. Android自定义View分享——仿微信朋友圈图片合并效果

    写在前面 笔者近来在学习Android自定义View,收集了一些不算复杂但又"长得"还可以的自定义View效果实现,之前分享过两个效果:一个水平的进度条,一个圆形温度显示器,如果你 ...

  8. 安卓开发仿微信图片拖拽_Android 仿微信朋友圈图片拖拽返回

    目前的app的动画效果是越来越炫了,很多主流app的图片预览返回都有类似功能,比较常见的是ios自带相册,微信朋友圈等等.自己项目中也有类似功能,最近整理了一下这个功能的代码,做个笔记记录,有兴趣的朋 ...

  9. android 高仿朋友圈title,Android之高仿微信朋友圈图片上传

    碰到过很多上传图片的功能,大多都是要求是仿微信,不论是单图还是多图,更不知道是出于什么原因要去仿微信,总之,作为开发人员,很无奈,今天就把这种需求总结出来了,方便以后使用,下面就开始撸...... 一 ...

最新文章

  1. 用excel表格做好客户关系管理
  2. R语言β分布函数(dbeta、pbeta、qbeta、rbeta)实战
  3. [tools]notepad++当前文件路径不是工作路径
  4. .net remoting学习(3) ---配置与服务端广播
  5. 超级有用的git reset --hard和git revert命令
  6. 计算机操作系统--思维导图
  7. 大一上学期高数期中复习 高数叔复习笔记
  8. [FAQ15840]MT2503系列充电电流问题
  9. 882. Reachable Nodes In Subdivided Graph
  10. Java实现 LeetCode 521 最长特殊序列 Ⅰ(出题人:“就是喜欢看你们不敢相信那么简单,又不敢提交的样子。”)
  11. 计算机知识与技能竞赛配图,第七届”高教杯“全国大学生先进成图技术与产品信息建模创新大赛机械类计算机绘图试卷.doc...
  12. PermissionError: [WinError 5] 拒绝访问。
  13. 易班开放平台授权机制理解以及使用
  14. php对参数校验(名称、地址、掩码、日期、时间、端口)
  15. make install - make uninstall - make clean 命令介绍
  16. MySQL - Row size too large (> 8126). Changing some columns to TEXT or BLOB
  17. 开放接口API安全性
  18. selenium实战 登录后跳转到外部网站,添加多个数据 (UI-0107)分享(白月黑羽网站selenium自动化学习)
  19. 冯宝丹:终究是一个人。
  20. php为什么不火了,听说已经有很多年历史的PHP不行了?

热门文章

  1. VLC-Android音频播放不完整问题踏坑
  2. 亲和图信息管理联想发散思维
  3. jk触发器改为四进制_异步计数器 || 计数器的分类 ||异步二进制十进制|| 74290 8421 5421 || 数电...
  4. BCD编码和ASCII码
  5. java毕业设计软件工程专业教辅平台课程子系统mybatis+源码+调试部署+系统+数据库+lw
  6. linux查看用户访问记录,Linux记录登录用户的行为
  7. 阿里云服务器地域暂时无法办理经营性ICP许可证?
  8. python租房_如何用Python爬租房网站信息
  9. Mac创建txt文件的两种方法
  10. 计算机小白如何真正入门计算机?