有時按鈕控件的範圍太小,導致操作體驗很差,需要擴大點擊區域範圍:
/** * 擴展點擊區域的範圍 * * @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)); } }); } }