編輯:關於Android編程
先看幾個函數:提到Android的觸摸事件處理,不少人都會立刻想到某些令人頭疼的函數,這裡列舉一下,刺激一下你的小神經:
@Override
public boolean onTouchEvent(MotionEvent event) {
return super.onTouchEvent(event);
}
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
return super.dispatchTouchEvent(ev);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
return super.onInterceptTouchEvent(ev);
}
@Override
public boolean onTouch(View v, MotionEvent event) {
return false;
}
恩,今天我們來看一下這四個函數的作用以及之間的調用關系,從而理清觸摸事件處理機制。
一. 我們先來搞定其中的兩個:
@Override
public boolean onTouchEvent(MotionEvent event) {
return super.onTouchEvent(event);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
return super.onInterceptTouchEvent(ev);
}
1.1 首先明確一點,Android的事件分發和處理是自上而下的,即一個觸摸事件第一次肯定是發給最外層的View的。
1.2 這裡我們舉個例子:我們假設一個窗口的多個ViewGroup組成了一個大家庭,其中最外層的View輩分最長,最裡層的View輩分最小,然後把一個觸摸事件event比喻成一個蘋果。那麼,如果發生了一個事件(獲得了一個蘋果),將會發生如下的事情:
蘋果的傳遞過程:
爺爺——>爸爸——>孫子。
那如果爺爺這一輩把蘋果吃掉了呢,這時我們稱這個事件被消費。
看下圖:
再細致地去分析:
至此,是不是對Android中的消息傳遞機制有了一個整體上的把握呢,
下面我們再去弄清一些細節。
概述用Time和Calendar獲取系統當前時間(年月日時分秒周幾)效果圖源碼:import android.app.Activity; import android.o
1、直接使用getWindow().getDecorView().getRootView()直接使用getWindow().getDecorView().getRootV
本文實例講述了Android編程之OpenGL繪圖技巧。分享給大家供大家參考,具體如下:很久不用OpenGL ES繪圖,怕自己忘記了,於是重新復習一遍,順便原理性的東西總
適配:即當前應用在相同的手機上面顯示相同的效果。適配前需要首先確定當前手機所屬像素密度類型(如:xhdpi、hdpi、mdpi等),然後計算其像素密度,按一定比例給出界面