Давайте возьмем их по одному ...
final int pointerIndex = (action & MotionEvent.ACTION_POINTER_INDEX_MASK)
>> MotionEvent.ACTION_POINTER_INDEX_SHIFT;
Это побитовые операторы. &
- это ИЛИ биты в action
и MotionEvent.ACTION_POINTER_INDEX_MASK
вместе.
>>
смещает этот результат.
Биньямин сослался на хорошую страницу для побитовых операторов для вас.
final int newPointerIndex = pointerIndex == 0 ? 1 : 0;
Это троичный оператор. По сути, он говорит «если pointerIndex равен 0, вернуть 1, иначе вернуть 0. Способ, которым вы выражаете это (булево решение)?