日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

自定义View -- 刻度尺

發布時間:2023/12/15 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 自定义View -- 刻度尺 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【圖片】

這次在自定義View時主要通過以下幾個步驟:

1.準備階段(在構造方法處)

  初始化各種默認的Paint,圖片資源。( 其中NinePatch資源需要通過Bitmap生成,繪制時調用ninePatch.draw )

2.確立區域

  在onMeasure方法中,通過setMeasuredDimension方法設置測量的寬與高。主要注意MeasureSpec.AT_MOST的情況

3.獲取View的尺寸

  在onSizeChanged,獲取View的寬高從而初始化各種尺寸。確定onDraw方法中要畫的各部分的位置。要注意padding值

4.進行繪制

  這里主要調用Canvas的draw方法。

5.實現滑動事件

  核心是確立中值(不是中間值,而且最靠近中間的值)。每次手指移動如果超過單位值,就會改變中間的值。而如果不超過,則記錄在一個成員變量里,作為繪制時中間值的偏移量。通過不斷的重繪而實現滑動效果

  設置有效的事件區域。當Down事件觸摸的不是尺子的區域時直接返回false,將不會收到后續事件。

  在有效的事件區域內,解決滑動沖突,去判斷是否有ViewParent,如果有就通過vp.requestDisallowInterceptTouchEvent去向父親請求事件。

6.實現慣性滑動

  這樣通過使用VelocityTracker來測量手離開時的速度,如果超過一定速度(ViewConfiguration中有),則調用Scoller的fling方法做好慣性滑動的準備,然后讓View重繪,并在computeScroll中改變中值或者中值的便宜量并再次重繪就可。

?

未實現:各種擴展

轉載于:https://www.cnblogs.com/linzhe/p/5709524.html

總結

以上是生活随笔為你收集整理的自定义View -- 刻度尺的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。