高仿相冊可拖拽返回圖片

高仿相冊可拖拽圖片

正常我們在使用縮放圖片跟顯示長圖的使用都是用到PhotoView跟SubsamplingScaleImageView這2個控件,我在github逛了一圈,都存在2種問題;

其一:都是基于上面2個控件進行開發(fā),會導致出現(xiàn)新的縮放控件或者更新控件會導致代碼開發(fā)不動
其二:雖然他們都能拖拽,但是在拖拽返回的時候,由于顯示是全屏,列表展示是正方形,導致圖片返回會變形或者大小不一致,導致會閃一下。
看了下iOS的相冊,跟小米的相冊,他們在拖拽返回不存在這個問題,體驗非常好;

所以自己開發(fā)一個,先開效果圖
1650426334978_1650436423802.gif

優(yōu)點:

1、不對任何縮放圖片控件進行封裝,我們只封裝拖拽功能,也就是說PhotoView跟SubsamplingScaleImageView需要自己寫在自己項目上(不會使用的可以參考demo)。
2、拖拽返回的時候,圖片不會變形,也不存在大小不一致等問題。
3、支持ViewPage跟ViewPage2隨意切換,2者的不同大家都知道就是Fragment生命周期不一樣

放慢動作效果圖:

(可以看出沒有變形,沒有閃爍實現(xiàn)無縫連接)


1650425963744_1650436423884.gif

依賴:

 implementation 'com.github.yanxuwen:DragViewLayout:1.1.0'       

使用方法

List<PictureData> listdata = new ArrayList<>();
List<Class<? extends Fragment>> listfragemnt = new ArrayList<>();
views.add(v1);
listfragemnt.add(MyFragment3.class);
PictureData pictureData = new PictureData(R.mipmap.longphoto, "長圖");
listdata.add(pictureData);
//啟動
 new DragViewDialog.Builder(this)
                .setData(listdata, listfragemnt)//設置數(shù)據(jù)
                .setViewPage2(true)//是否支持ViewPage2
                .setTransparentView(true)//是否挖空視圖
                .setBackgroundColor(Color.parseColor("#333333"))//背景圖
                .setListener(new Listener<PictureData>() {//監(jiān)聽器
                    /**
                     * 聯(lián)動View,默認為null,則不能隨意拖拽效果,只能上下滑動關(guān)閉(類似 
                     * 與今日頭條效果)
                     * 因為找不可以聯(lián)動的View,
                     */
                    @Override
                    public View getCurView(int position, PictureData pictureData) {
                        return views.get(position);
                    }
                })
                .show();

請前往github 點擊跳轉(zhuǎn)

喜歡就在 github star下,非常感謝o(∩_∩)o~~~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容