Game Development Reference
In-Depth Information
builder.append(touched[i]);
builder.append(", ");
builder.append(id[i]);
builder.append(", ");
builder.append(x[i]);
builder.append(", ");
builder.append(y[i]);
builder.append("\n");
}
textView.setText(builder.toString());
}
public void onCreate(Bundle savedInstanceState) {
super .onCreate(savedInstanceState);
textView = new TextView( this );
textView.setText("Touch and drag (multiple fingers supported)!");
textView.setOnTouchListener( this );
setContentView(textView);
for ( int i = 0; i < 10; i++) {
id[i] = -1;
}
updateTextView();
}
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction() & MotionEvent. ACTION_MASK ;
int pointerIndex = (event.getAction() & MotionEvent. ACTION_POINTER_ID_MASK ) >>
MotionEvent. ACTION_POINTER_ID_SHIFT ;
int pointerCount = event.getPointerCount();
for ( int i = 0; i < 10; i++) {
if (i >= pointerCount) {
touched[i] = false ;
id[i] = -1;
continue ;
}
if (event.getAction() != MotionEvent. ACTION_MOVE&& i != pointerIndex) {
// if it's an up/down/cancel/out event, mask the id to see if we should process
it for this touch point
continue ;
}
int pointerId = event.getPointerId(i);
switch (action) {
case MotionEvent. ACTION_DOWN :
case MotionEvent. ACTION_POINTER_DOWN :
touched[i] = true ;
id[i] = pointerId;
x[i] = ( int ) event.getX(i);
y[i] = ( int ) event.getY(i);
break ;
Search WWH ::




Custom Search