前言
大家應該都知道,在Android中,我們對于View進行模擬點擊事件,很容易,比如調用View.performClick
即可。
但是有些時候,我們想要更加精細的點擊,比如View的某一區域或者某一點進行點擊。比如下面的例子。
上面是一個WebView加載了一個視頻,我們必須手動點一下播放按鈕才能讓視頻播放,當然我們想要的最好是如下的自動播放效果(進入界面后,自動播放視頻)
當然方法有很多,比如通過javascript調用視頻元素的click事件。在這里我們暫不對該方法進行細究。本文旨在提供一種解決問題的可行方法。
其實我們可以通過View.dispatchTouchEvent
就能解決,因為一個click事件可以理解成一個Action_down和一個Action_up MotionEvent的組合,所以實現起來如下即可。
private fun simulateTouchEvent(view: View, x: Float, y: Float) { val downTime = SystemClock.uptimeMillis() val eventTime = SystemClock.uptimeMillis() + 100 val metaState = 0 val motionEvent = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_DOWN, x, y, metaState) view.dispatchTouchEvent(motionEvent) val upEvent = MotionEvent.obtain(downTime + 1000, eventTime + 1000, MotionEvent.ACTION_UP, x,y, metaState) view.dispatchTouchEvent(upEvent) }
本文題目:Android如何基于坐標對View進行模擬點擊事件詳解-創新互聯
瀏覽地址:http://m.kartarina.com/article16/cdcedg.html
成都網站建設公司_創新互聯,為您提供虛擬主機、Google、小程序開發、企業網站制作、服務器托管、定制開發
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯