transferee
transferee copied to clipboard
说出你的需求或者优化点
如果这个库还有哪些需要改进的或者有自己的需求可以在下面提出来,我会按优先级去实现。
但是仅仅针对自己的太过特殊需求,还请自己去实现。
请各位同学不要在这个 issues 下面提你遇到的问题。
要提 issues 之前请先去看看项目里面的 demo 有不有覆盖到你的问题,或者去找找已经存在 issues 。 如果都没,再创建一个新的 issues。 谢谢合作~ 拜谢!
现在没有依赖地址嘛?
@SixGL 暂时没有,之后会发布上去的。目前可以直接以 import module的形式导入。
可以添加一个依赖库吗?这样很方便
@SixGL @799837663 最新代码已经上传到 jitpack 详情请见 README
需求列表:
- 加载大图 加载进度只有百分之零和加载完毕,没有中间过程
- 增加类似微信一样的缩略图预览和查看原图功能
- 提供图片的编辑功能
目前有个需求:想要提供图片预览的功能给webview用,但是我不一定能获取到 ImageView ,想知道能否增加一个解绑功能,就是直接打开图片而不需要绑定任何视图。
以上需求我基本都已经实现了,并不复杂
建议提供内部ViewPager切换监听
建议提供内部ViewPager切换监听
请问需要这个监听,你是想做什么呢?能大致描述下吗。我看现有的功能体系里面是否已经有满足的
以上需求我基本都已经实现了,并不复杂
bro 你提了4个功能点,末尾又说你实现了。可能是我阅读能力平常,真没搞懂你的意图!我想的是如果你实现了,为什么你不推 Pull requests呢?
建议提供内部ViewPager切换监听
请问需要这个监听,你是想做什么呢?能大致描述下吗。我看现有的功能体系里面是否已经有满足的
就是在自定义视图的时候,如果不想使用内置的指示器的好像无法实现,很多情况是需要按照设计上去实现,目前好像没法监听到多图情况下的翻页事件
建议提供内部ViewPager切换监听
请问需要这个监听,你是想做什么呢?能大致描述下吗。我看现有的功能体系里面是否已经有满足的
就是在自定义视图的时候,如果不想使用内置的指示器的好像无法实现,很多情况是需要按照设计上去实现,目前好像没法监听到多图情况下的翻页事件
这个功能目前已经有了
首先transferee虽然内置了指示器。但是用不用取决于用户。我只是会检测如果你没有指定一个指示器的时候。我会默认使用 CircleIndexIndicator 。代码参见 transferee 类 checkConfig 方法
其次用户可以实现 IIndexIndicator 接口,去实现封装你自己的指示器。具体方法你可以看下接口 IIndexIndicator 实现非常简单,然后仿照我写的两个指示器去添加就好了。在构建config的时候。把你的指示器添加进去就ok了
config = TransferConfig.build()
.setSourceImageList(ImageConfig.getSourcePicUrlList())
.setProgressIndicator(new ProgressBarIndicator())
.setIndexIndicator(new NumberIndexIndicator()) // 注意这里是我从外部传递进去的。也就是你自己写的指示器
.setImageLoader(PicassoImageLoader.with(getApplicationContext()))
.setJustLoadHitImage(true)
.bindRecyclerView(rvImages, R.id.iv_thum);
建议提供内部ViewPager切换监听
请问需要这个监听,你是想做什么呢?能大致描述下吗。我看现有的功能体系里面是否已经有满足的
就是在自定义视图的时候,如果不想使用内置的指示器的好像无法实现,很多情况是需要按照设计上去实现,目前好像没法监听到多图情况下的翻页事件
这个功能目前已经有了
首先transferee虽然内置了指示器。但是用不用取决于用户。我只是会检测如果你没有指定一个指示器的时候。我会默认使用 CircleIndexIndicator 。代码参见 transferee 类 checkConfig 方法
其次用户可以实现 IIndexIndicator 接口,去实现封装你自己的指示器。具体方法你可以看下接口 IIndexIndicator 实现非常简单,然后仿照我写的两个指示器去添加就好了。在构建config的时候。把你的指示器添加进去就ok了
config = TransferConfig.build() .setSourceImageList(ImageConfig.getSourcePicUrlList()) .setProgressIndicator(new ProgressBarIndicator()) .setIndexIndicator(new NumberIndexIndicator()) // 注意这里是我从外部传递进去的。也就是你自己写的指示器 .setImageLoader(PicassoImageLoader.with(getApplicationContext())) .setJustLoadHitImage(true) .bindRecyclerView(rvImages, R.id.iv_thum);
� 嗯嗯,看了下源码是可以的,囧(这块好像和自定义view类似,自己弄复杂了用自定view去实现的指示器外加其它展示功能)
退回到Activity,页面会有明显抖动,因为dialog改了theme导致的。 特别在聊天页面,点击查看图片recyclerview会身下移动一些距离。 为什么不跳转Activity呢? 另外能支持uri就好了,虽然可以将uri转化为string,但方法名就与用法不符合了
退回到Activity,页面会有明显抖动,因为dialog改了theme导致的。 特别在聊天页面,点击查看图片recyclerview会身下移动一些距离。 为什么不跳转Activity呢? 另外能支持uri就好了,虽然可以将uri转化为string,但方法名就与用法不符合了
抖动的问题,你可以看下demo。父容器使用CoordinatorLayout就能解决。后期我会考虑更换容器。但肯定还是dialog或者更轻的容器。activity 太太太重了。会产生很多不必要的问题了。我在一个 issues 中详细的说明过这个问题。
支持uri 。之前也考虑过。不过因为 transferee 目前特性来看。都是加载网络图片浏览。url 让人直接就能明白。uri.有多中scheme格式的数据,要处理一些没必须要处理的东西,不是那么直观。其实就是简单的问题不要搞那么复杂的想法。 当然后期我也会去扩展支持 uri 的接口。应该会出现在下一个版本里面
题还是返回抖动
这个你还是仔细看 demo 吧。可以拿你的代码仔细对比下。
1.5.1 版本已发布
- 添加 enableDragHide 属性,控制在拖拽关闭的时候,是否立即隐藏其他 view
- 拓展 Uri 格式的图片数据源接口
- 添加不绑定 view 也能使用 Transferee 的状态模型
- 修改在无网络的时候,使用 GlideImageLoader 加载图片闪退和行为错乱的问题
- 由于历史原因,不再兼容4.4以下的全屏模式。同时修复了 StatusBar 抖动的问题
最新版本发布,支持视频,修复了许多重大bug:
- v1.6.0
- 新增视频播放以及视频配套功能的支持
- 新增 enableDragPause 属性控制视频拖拽关闭时是否暂停
- 新增 enableHideThumb 属性控制缩略图是否消失
- 新增 enableScrollingWithPageChange 属性控制用户的列表是否跟随 transferee 页面切换而滚动
- 优化下拉关闭手势的交互
- 优化页面切换时,性能较差手机上可能出现一次闪屏的问题
- 优化在没有网络的情况下,transferee 启动或者关闭时一些边界性质的问题
- 优化图片没有加载出来的时候,手势关闭的时候动画不正常的问题
- 修复因为无法获取 originImage 导致的占位图为空的 bug
- 修复加载失败的时候,无法通过点击屏幕关闭的 bug
- 修复关闭时,背景色渐变算法错误的 bug
- 修复使用修复 bindImageView api 出现数组下标越界的 bug
- 修复当动画时长较长时,出现的没有打开完成之前,就能使用物理按键关闭的 bug
- 修复部分机型上只加载缩略图,没有加载高清图,打开后,占位图大小不一样的 bug
- 修复了全面屏、刘海屏 dialog 全屏适配错误的 bug
- 修复部分机型上 enableDragHide 功能不正常的 bug
- 修复弱网或者无网的情况下,被隐藏的页面占位图不显示的 bug
- 修复了一些代码逻辑错误
希望支持根据exif信息,自动旋正照片。
希望支持根据exif信息,自动旋正照片。
可以的,感谢你的建议
https://img.ibaodashi.com/hermes/56f5c408ab03e7c3f14532050cf11254.jpg 图片放这张就崩了。GlideImageLoader加载,需要优化图片加载。 设置customView作用是干嘛,和数据源以及viewpager没有绑定嘛,除非就是单张显示。 自定义indictor的作用就是显示自定的view。customView 就感觉没啥用了吧。 还需要从下向上拖拽消失的功能哦。
https://img.ibaodashi.com/hermes/56f5c408ab03e7c3f14532050cf11254.jpg 图片放这张就崩了。GlideImageLoader加载,需要优化图片加载。 设置customView作用是干嘛,和数据源以及viewpager没有绑定嘛,除非就是单张显示。 自定义indictor的作用就是显示自定的view。customView 就感觉没啥用了吧。 还需要从下向上拖拽消失的功能哦。
1.图片加载优化已经在进行中了,不过最近太忙,可能要等一段时间才能上线了 2.customeView 是为了自定义 transferee 主界面用的,很多用户都有这个需求,比如微博的图片查看,右下角有点赞,评论等按钮,右上角有关注,更多等菜单。 3.从下向上拖拽消失的功能不考虑做了,因为和拖拽关闭功能重复,或者你可以自己做,推上来
v 1.6.1 优化及修复版本发布了
Features
- 新增图片方向自动校正功能
- 新增图片处理,优化大图的显示
- ImageLoader 接口代码重构简化
- 下滑手势优化,扩大了有效触发关闭的手势角度
- 重置不在当前显示区域图片的状态
- 优化了内存占用,当浏览多图相册时,保证内存稳定
Bugs
- 修复部分机型上 stage 模式动画在阶段切换的时候抖动的 bug
- 修复部分机型上状态栏和导航栏显示错误或者遮盖图片和其他 view 的问题
- 修复打开和关闭的状态不能保持一致的 bug
- 解决了因为 Config 资源未回收而导致的内存泄漏问题
之前说的那个上滑消失,改了几行代码就实现了,感谢大佬。然后图片showImage使用asBitmap,into(imageview) 然后用glide那一套,也好了。位置换成了getLocationOnScreen();接下来准备把glide的缓存拿过来,自己就不缓存了,就不需要progressbar了,点击就是缩放动画。
之前说的那个上滑消失,改了几行代码就实现了,感谢大佬。然后图片showImage使用asBitmap,into(imageview) 然后用glide那一套,也好了。位置换成了getLocationOnScreen();接下来准备把glide的缓存拿过来,自己就不缓存了,就不需要progressbar了,点击就是缩放动画。
你这些改动貌似不是基于1.6.1版本改的。你上面说的一些改动有的1.6.1已经就是哪样的。有的方法已经删除了,有的逻辑是必不可少的,为了你少走弯路,还是基于新版本吧
建议:能否添加一个方法,指定打开的position;比如绑定webview,每次大图都是从第一张开始的,能否传入一个position,然后就跳到指定的position
建议:能否添加一个方法,指定打开的position;比如绑定webview,每次大图都是从第一张开始的,能否传入一个position,然后就跳到指定的position
nowThumbnailIndex 这个参数就是做这个功能的,文档里面有详细说明。
我这边返回的webview就是视频和图片一起的,所以就报错了、、、、但是代码拉的是最新的
我说的是最新的代码不是最新的版本1.6.1. 希望你不要搞混淆了。另外最新的代码我可能不会发新版 毕竟这种视频和图片混合的需求,我也只是拿来测试。没想到还真有这种需求。
感谢修改,我下载代码依赖,需求这个东西不是程序猿说了算,产品逻辑更怪的都有,千奇百怪
我这边返回的webview就是视频和图片一起的,所以就报错了、、、、但是代码拉的是最新的
我说的是最新的代码不是最新的版本1.6.1. 希望你不要搞混淆了。另外最新的代码我可能不会发新版 毕竟这种视频和图片混合的需求,我也只是拿来测试。没想到还真有这种需求。
感谢修改,我下载代码依赖,需求这个东西不是程序猿说了算,产品逻辑更怪的都有,千奇百怪
ok,既然这样那我会保留这个问题,因为刚发1.6.1版本,新版本的需求还需要一段时间完善。目前基于这个“视频图片混合,并且指定的position 位置刚好是视频那个位置的页面”需求,只能使用代码依赖了。
先说场景,某些自定义viewgroup会代码创建多个ImageView,或者有IamgeView[] 可以传入和url相同数量的ImageView[],实现打开消失动画 不知道这个需求多不多建