// seekbarLayout是シークバー对象statusSeekbar的父层布局 seekbarLayout = mStatusViewLayout.findViewById(R.id.id_seekbar_layout)。 seekbarLayout.setOnTouchListener(新しいView.OnTouchListener(){ @Override 公共 ブールonTouch(ビューV、MotionEventイベント){ のRect seekRect = 新規のRect(); statusSeekbar.getHitRect(seekRect); もし((event.getY()> =( seekRect.top - 500))&&(event.getY()<=(seekRect.bottom + 500 ))){ フロート Y = seekRect.top + seekRect.height()/ 2 ; // シークバーのみ受け入れる相対Xの フロートX = event.getX() - seekRect.left。 もし(x <0 ){ X = 0 。 } そう であれば(X> seekRect.width()){ X = seekRect.width()。 } MotionEvent Meは = MotionEvent.obtain(event.getDownTime()、event.getEventTime()、 event.getAction()において、x、yは、event.getMetaState())。 リターンstatusSeekbar.onTouchEvent(私)。 } を返す 偽。 } })。
原則:ViewはonTouchEventシークバータッチイベント、ダイレクトマニュアルコールのより大きな面積を取得します。