自定義鍵盤KeyboardView如何添加點擊音效

前段時間通過繼承KeyboardView做了個自定義鍵盤,後來測試發現在打開觸摸按鍵音時沒有按鍵音效果。經過多番嘗試最後終於解決了問題。


關於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() 即可。
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章