最近看到微信朋友圈查看大图那叫一个牛哇,Android5.0刚好有个share的转场动画,于是自己写了一个。。。
先分享一个地址
然后开始使用
导入
更目录下build.gradle添加
allprojects {
repositories {
...
maven { url "https://jitpack.io" }
}
}
在需要依赖的模块下面添加
dependencies {
...
implementation 'com.github.peoplewithnoname:ImageBrowse:1.0.4.2'
}
导入完成就需要在manifest里面添加
<activity
android:name="com.caihao.imagebrowse.ImageBrowseActivity"
android:screenOrientation="portrait" />
别忘记网络请求权限
这句代码很明显 就是一个实现ImageLoader接口的GlideImageLoader(glide图片加载 都懂的…)
ImageBrowseUtils.setImageLoader(new GlideImageLoader());
重要的方法来了 我将其分为单张图片查看和多张图片查看
1.单张图片查看:
private ImageBrowseTools imageBrowseTools;//查看大图的工具类;
//初始化ImageBrowseTools管理类(一张图只需要设置activity和tag)
imageBrowseTools = new ImageBrowseTools.Builder()
.setTag(TAG)//TAG为常量
.setActivity(this).build();
//打开大图浏览(view:会进行放大动画的view,url:图片链接)
imageBrowseTools.start(view, url);
2.多张图片查看
private ImageBrowseTools imageBrowseTools;//查看大图的工具类;
//初始化ImageBrowseTools管理类
imageBrowseTools = new ImageBrowseTools.Builder()
.setActivity(this)
.setTag(TAG)
.setActivityRegisterCallback(activityRegisterCallback)
.setAfterIndexCallback(afterIndexCallback).build();
//打开大图浏览 position:当前所处位置
imageBrowseTools.start(view, urlList, position);
ActivityRegisterCallback activityRegisterCallback = new ActivityRegisterCallback() {
@Override
public View getView(int index) {//根据位置下标返回对应的View
GridLayoutManager manager = (GridLayoutManager) recyclerView.getLayoutManager();
View itemView = manager.findViewByPosition(index);
return itemView ;
}
};
AfterIndexCallback afterIndexCallback = new AfterIndexCallback() {
@Override
public void after(int index) {//每次index改变之后的动作
recyclerView.smoothScrollToPosition(index);
}
};
注 如果一个Activity有单张图片查看和多张图片查看的,请看看源码,TAG是不同的
本文章是基于5.0 转场动画写