要響應觸控事件,就需要實現glsu***ceview的ontouchevent()方法來監聽觸控事件。
設定乙個觸控監聽
下面的**監聽motionevent.action_move事件,然後旋轉形狀乙個角度。
@override計算了角度後,呼叫requestrender()來告訴渲染器渲染檢視。這種方法是最有效率的,因為除非發生旋轉,不然檢視不會被重繪。為了實現資料變化才重繪檢視,你需要像下面這樣設定setrendermode()方法:public
boolean
ontouchevent
(motionevente)
// reverse direction of rotation to left of the mid-lineif(
x <
getwidth()/
2)mrenderer
.mangle +=(
dx +dy)
*touch_scale_factor
;// = 180.0f / 320
requestrender
();}
mpreviousx =x
;mpreviousy =y
;return
true
;}
public公開旋轉角度上面的例項**需要公開旋轉角度,當渲染**執行在乙個特別的執行緒中時,你需要宣告乙個公共變數為volatile的,作用是為了同步旋轉的角度:myglsu***ceview
(context
context
)
public執行效果如下:class
myglrenderer
implements
glsu***ceview
.renderer
(6)響應觸控事件
讓物件按著預設的程式移動比如旋轉三角形,看起來是有些亮點的,但是如果你想讓使用者和你的opengl es圖形進行互動,該如何做呢?使你的opengl es程式可以觸控互動的關鍵是,實現glsu ceview的過載方法ontouchevent 讓它可以監聽觸控事件。這篇文章將向你展示如何監聽觸控事件讓...
ios觸控事件響應鏈個人總結
在如下圖所示的檢視層次中,假設使用者觸控的時e檢視,在呼叫hittest withevent 時 首先對a進行測試,返回yes,繼續對b和c進行測試 對b測試返回no,不再繼續往下測試,轉而對c進行測試 對c測試返回yes,繼續對d和e進行測試 對d測試返回no,不再繼續往下測試,轉而對e進行測試 ...
觸控事件的產生 傳遞與響應
主視窗會在檢視層次結構中,通過hittest方法尋找最合適的檢視view來處理觸控事件,事件處理的第一步 找到合適的檢視view控制項之後,就會呼叫該控制項的touches方法來處理相應的事件 事件的傳遞 觸控事件的傳遞是從父控制項傳遞到子控制項的,以下圖為例,事件的傳遞過程如下 點選藍色 點選來黃...