中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

android實現(xiàn)圖片選擇拖拽控件

1.使用RecyclerView

從策劃到設計制作,每一步都追求做到細膩,制作可持續(xù)發(fā)展的企業(yè)網站。為客戶提供成都網站設計、網站制作、網站策劃、網頁設計、申請域名、虛擬空間、網絡營銷、VI設計、 網站改版、漏洞修補等服務。為客戶提供更好的一站式互聯(lián)網解決方案,以客戶的口碑塑造優(yōu)易品牌,攜手廣大客戶,共同發(fā)展進步。

使用RecyclerView可以輕松實現(xiàn)圖片切換時的動畫過程,這點要好于GridView。

2. 拖拽的實現(xiàn)

  • Dragmanager

繼承View.OnDragListener,對拖拽過程中進行操作,

Action_drag_started 獲取到操作的Item

Action_Drag_location 根據(jù)每個停留的位置判斷是否交換item的位置。

Action_Drag_ended 跟新位置

  • DragSortAdapter

抽象類,為recyclerView 增加onItemTouchListener和onScrollListener, 記錄onTouch的item,并在拖拽過程中判斷recyclerview是否可以滾動,從而在拖拽的item快到邊界時滾動recyclerView,使可以與本來在屏幕上不可見的item進行交換位置。

  • ViewHolder

ViewHolder 實現(xiàn)startDrag方法

2.itemDecoration

為recyclerview item增加divider,可以有兩種方式,覆蓋onDraw方法繪制itemDivider,或者覆蓋getItemOffsets方法,使item之間可以分隔開。

3.GridlayoutManager

當recyclerview嵌入到scrollview中時,需要復寫LayoutManager,在這里復寫其中的onMeasure方法,需要計算每個item的高度或者寬度進行疊加,當recyclerview中item很多時,不要采用這種方式,回導致view不能復用,其中在計算item高度時,需要加上每個item的itemOffsets,查看recyclerview的源碼發(fā)現(xiàn),無法直接獲取到item的offsets,最終采用反射的方式獲取到其值:

try {
    Method method = recyclerView.getClass().getDeclaredMethod("getItemDecorInsetsForChild",View.class);
    method.setAccessible(true);
    final Rect insets = (Rect)method.invoke(recyclerView, child);
    itemDecorationHeight = heightUsed + insets.height();
    itemDecorationWidth = widthUsed + insets.width();
} catch (NoSuchMethodException e){
    Log.d("FullGridLayoutManager","no method found");
}catch(IllegalAccessException e){
    Log.d("FullGridLayoutManager","IllegalAccessException");
}catch (InvocationTargetException e){
    Log.d("FullGridLayoutManager","InvocationTargetException");
}

網站名稱:android實現(xiàn)圖片選擇拖拽控件
分享鏈接:http://m.rwnh.cn/article20/ippejo.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供建站公司網站導航、小程序開發(fā)、關鍵詞優(yōu)化網站建設、搜索引擎優(yōu)化

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

網站優(yōu)化排名
抚州市| 逊克县| 蒙山县| 汪清县| 融水| 当涂县| 资溪县| 崇仁县| 宁海县| 涟源市| 宝丰县| 景泰县| 湖州市| 平遥县| 杭锦后旗| 锡林浩特市| 周口市| 泸溪县| 饶河县| 东兰县| 河东区| 邳州市| 图们市| 阜平县| 临颍县| 鸡泽县| 龙山县| 凤庆县| 铁岭县| 界首市| 若羌县| 济阳县| 盐源县| 磴口县| 随州市| 广州市| 衡南县| 海淀区| 石嘴山市| 山丹县| 万荣县|