關於View的點擊音是如何實現的請參考:點擊打開鏈接
KeyboardView 的文檔說明請參考:點擊打開鏈接 搜索sound關鍵字,大致定位點擊音效是在performClick函數中執行。
View.java 中的performClick函數代碼如下:
public boolean performClick() {
final boolean result;
final ListenerInfo li = mListenerInfo;
if (li != null && li.mOnClickListener != null) {
playSoundEffect(SoundEffectConstants.CLICK);
if (ViewDebugManager.DEBUG_TOUCH) {
Log.d(VIEW_LOG_TAG, "(View)performClick, listener = " + li.mOnClickListener
+ ",this = " + this);
}
li.mOnClickListener.onClick(this);
result = true;
} else {
result = false;
}
sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_CLICKED);
notifyEnterOrExitForAutoFillIfNeeded(true);
return result;
}
上面ListenerInfo 不清楚是什麼,mOnClickListener就是我們平常所設置的View.OnClickListener。只有當兩者不爲空才能觸發playSoundEffect。所以我們要在我們的自定義鍵盤中設置該監聽器。
然後在按鍵鬆開時,調用performClick() 即可。