最近在學(xué)習(xí)kotlin鲁驶,項(xiàng)目中正好用到了圖片瀏覽,就用kotlin放照微信的做了一個(gè)饱狂,效果如下:
大概就是這么個(gè)效果,圖片從小到大的一個(gè)效果宪彩,然后滑動(dòng)切換圖片休讳,點(diǎn)擊后會(huì)返回對(duì)應(yīng)圖片的位置,其實(shí)比較容易尿孔,用到的是ActivityOptions俊柔,一個(gè)activity的轉(zhuǎn)場動(dòng)畫,下面說一下怎么實(shí)現(xiàn)活合。
關(guān)于kotlin的配置就不過多說了雏婶,網(wǎng)上好多教程(最近kotlin好火)
布局就是一個(gè)recyclerview
mainactivity代碼:
可以看到就一個(gè)初始化布局管理器和設(shè)置適配器的代碼沒什么了(你說沒看到初始化控件?看看這篇文章)
到這里之前都很好理解白指,關(guān)鍵就是adapter和點(diǎn)擊圖片跳轉(zhuǎn)的代碼
在API 21以后留晚,我們可以使用內(nèi)置的Activity切換動(dòng)畫。但是這樣也就意味著只能兼容5.0之后的系統(tǒng)侵续,ActivityOptions是一個(gè)靜態(tài)類倔丈,它提供了為數(shù)不多的幾種方法,我們正是用其中的makeSceneTransitionAnimation(Activity activity,Pair… sharedElements)來完成了這個(gè)效果状蜗,有興趣的小伙伴移步至這里需五,
先來說下傳遞的兩個(gè)參數(shù),第一個(gè)activity不用說轧坎,第二個(gè)pair<View,String>,View是你開始動(dòng)畫的view對(duì)象宏邮,string是他的動(dòng)畫名要和結(jié)束動(dòng)畫的view名一致才可以,到這里應(yīng)該可以理解,我們?cè)趧?chuàng)建適配器的時(shí)候給每個(gè)imageview起了一個(gè)transitionname當(dāng)我們跳轉(zhuǎn)至查看大圖界面給當(dāng)前的viewpage賦值相同的名稱便能完成動(dòng)畫蜜氨,然后在我們滑動(dòng)時(shí)更改viewpage的transitionname為對(duì)應(yīng)圖片的transitionname這樣在點(diǎn)擊圖片的時(shí)候就會(huì)顯示對(duì)應(yīng)圖片的下標(biāo)械筛。