Posting the answer that I was able to figure out:
public List<Integer> findClosestElements(int[] arr, int k, int x) {
int left = 0, right = arr.length - k;
int start = 0;
while (left <= right) {
int midpoint = left + (right - left) / 2;
if (((midpoint + k) < arr.length ) && (x - arr[midpoint] > arr[midpoint + k] - x)) {
left = midpoint + 1;
start = left;
}
else {
start = midpoint;
right = midpoint - 1;
}
}
start = (start == arr.length)?start - 1: start;
List<Integer> result = new ArrayList<>(k);
for (int i = start; i < start + k; i++) {
result.add(arr[i]);
}
return result;
}
}