1c276c59eb5d0f36a1133ad718e5e1244390f4688Mikhail Naganovpackage com.example.android.nativemididemo; 2c276c59eb5d0f36a1133ad718e5e1244390f4688Mikhail Naganov 3c276c59eb5d0f36a1133ad718e5e1244390f4688Mikhail Naganovimport android.content.Context; 4c276c59eb5d0f36a1133ad718e5e1244390f4688Mikhail Naganovimport android.view.MotionEvent; 5c276c59eb5d0f36a1133ad718e5e1244390f4688Mikhail Naganovimport android.util.AttributeSet; 6c276c59eb5d0f36a1133ad718e5e1244390f4688Mikhail Naganovimport android.widget.ScrollView; 7c276c59eb5d0f36a1133ad718e5e1244390f4688Mikhail Naganov 8c276c59eb5d0f36a1133ad718e5e1244390f4688Mikhail Naganovpublic class TouchableScrollView extends ScrollView { 9c276c59eb5d0f36a1133ad718e5e1244390f4688Mikhail Naganov public boolean isTouched; 10c276c59eb5d0f36a1133ad718e5e1244390f4688Mikhail Naganov 11c276c59eb5d0f36a1133ad718e5e1244390f4688Mikhail Naganov public TouchableScrollView(Context context) { 12c276c59eb5d0f36a1133ad718e5e1244390f4688Mikhail Naganov super(context); 13c276c59eb5d0f36a1133ad718e5e1244390f4688Mikhail Naganov } 14c276c59eb5d0f36a1133ad718e5e1244390f4688Mikhail Naganov 15c276c59eb5d0f36a1133ad718e5e1244390f4688Mikhail Naganov public TouchableScrollView(Context context, AttributeSet attrs) { 16c276c59eb5d0f36a1133ad718e5e1244390f4688Mikhail Naganov super(context, attrs); 17c276c59eb5d0f36a1133ad718e5e1244390f4688Mikhail Naganov } 18c276c59eb5d0f36a1133ad718e5e1244390f4688Mikhail Naganov 19c276c59eb5d0f36a1133ad718e5e1244390f4688Mikhail Naganov @Override 20c276c59eb5d0f36a1133ad718e5e1244390f4688Mikhail Naganov public boolean onTouchEvent(MotionEvent event) { 21c276c59eb5d0f36a1133ad718e5e1244390f4688Mikhail Naganov switch (event.getAction()) { 22c276c59eb5d0f36a1133ad718e5e1244390f4688Mikhail Naganov case MotionEvent.ACTION_DOWN: 23c276c59eb5d0f36a1133ad718e5e1244390f4688Mikhail Naganov isTouched = true; 24c276c59eb5d0f36a1133ad718e5e1244390f4688Mikhail Naganov break; 25c276c59eb5d0f36a1133ad718e5e1244390f4688Mikhail Naganov case MotionEvent.ACTION_CANCEL: 26c276c59eb5d0f36a1133ad718e5e1244390f4688Mikhail Naganov case MotionEvent.ACTION_UP: 27c276c59eb5d0f36a1133ad718e5e1244390f4688Mikhail Naganov isTouched = false; 28c276c59eb5d0f36a1133ad718e5e1244390f4688Mikhail Naganov break; 29c276c59eb5d0f36a1133ad718e5e1244390f4688Mikhail Naganov } 30c276c59eb5d0f36a1133ad718e5e1244390f4688Mikhail Naganov return super.onTouchEvent(event); 31c276c59eb5d0f36a1133ad718e5e1244390f4688Mikhail Naganov } 32c276c59eb5d0f36a1133ad718e5e1244390f4688Mikhail Naganov} 33