擴展點擊區域的範圍

有時按鈕控件的範圍太小,導致操作體驗很差,需要擴大點擊區域範圍:

/**
 * 擴展點擊區域的範圍
 *
 * @param view       需要擴展的元素,此元素必需要有父級元素
 * @param expendSize 需要擴展的尺寸(以sp爲單位的)
 */
public static void expendTouchArea(final View view, final int expendSize) {
    if (view != null) {
        final View parentView = (View) view.getParent();

        parentView.post(new Runnable() {
            @Override
            public void run() {
                Rect rect = new Rect();
                view.getHitRect(rect); //如果太早執行本函數,會獲取rect失敗,因爲此時UI界面尚未開始繪製,無法獲得正確的座標
                rect.left -= expendSize;
                rect.top -= expendSize;
                rect.right += expendSize;
                rect.bottom += expendSize;
                parentView.setTouchDelegate(new TouchDelegate(rect, view));
            }
        });
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章