1. 程式人生 > >仿微信多圖片選擇、預覽、手勢處理

仿微信多圖片選擇、預覽、手勢處理

https://github.com/wangluu/PicSelect
因為覺得網上其他的仿微信圖片選擇都不夠好,特別是手勢處理,大圖檢視時,稍微放大圖片,再左滑右滑效果很不理想,所以我自己做了一個。
這裡寫圖片描述
(Gif太麻煩了,截幾張圖吧)

features
1.傳參定義主題顏色,最多圖片數量等。
2.仿微信,增加拍攝直接選中,分資料夾,預覽,單擊全屏,雙擊放大,多指操作平滑
3.我認為最重要的一個地方(GIF中的效果),受限於android事件傳遞機制,必須要自己對事件進行控制,我是自定義Wiewpager(沒寫錯,稍微修改viewpager原始碼),加上自定義ImageView實現的,Wiewpager攔截分配所有觸控事件(實現起來才知道有多麻煩,沒有像其他仿微信的使用諸如PhotoView這類單純控制元件,因為這樣無法達到微信的手勢效果)。

使用起來像是下面這樣:

//startActivityForResult啟動介面,在onActivityResult中獲取選中結果。用我的IntentBuilder或者自己定義intent
startActivityForResult(new SelectPictureActivity.IntentBuilder().maxCount(9).themeColor(yourColor).build(context), 1);

獲取選中結果

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super
.onActivityResult(requestCode, resultCode, data); if(resultCode ==Activity.RESULT_OK&& requestCode == 1 ){ //獲取選中圖片的路徑 List<String> imgPaths = data.getStringArrayListExtra(SelectPictureActivity.IMAGES); mAdapter.setData(imgPaths); mAdapter.notifyDataSetChanged(); } }

還可以預覽圖片:

//data就是圖片路徑地址list,可以是網路圖片.initPosition初始位置
Intent intent = new ViewImageActivity.IntentBuilder().images(data).initPosition(initPosition).themeColor(c).showTopBar(true).build(MainActivity.this);
startActivity(intent);

當然還需要再完善的,有什麼問題或者需求,可以提出來,我會抽時間完善,如果你有用到或者對你有幫助記得給個star,3Q。