The following code shows how to Dispatch event to a control.
Layout activity_main.xml file
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/text_touch" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:gravity="center" android:text="Scroll Anywhere Here" /> <HorizontalScrollView android:id="@+id/scroll_view" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:background="#CCC"> <LinearLayout android:layout_width="wrap_content" android:layout_height="match_parent" android:orientation="horizontal" > <ImageView android:layout_width="250dp" android:layout_height="match_parent" android:scaleType="fitXY" android:src="@drawable/ic_launcher" /> <ImageView android:layout_width="250dp" android:layout_height="match_parent" android:scaleType="fitXY" android:src="@drawable/ic_launcher" /> <ImageView android:layout_width="250dp" android:layout_height="match_parent" android:scaleType="fitXY" android:src="@drawable/ic_launcher" /> <ImageView android:layout_width="250dp" android:layout_height="match_parent" android:scaleType="fitXY" android:src="@drawable/ic_launcher" /> </LinearLayout> </HorizontalScrollView> </LinearLayout>
Main activity Java code
package com.java2s.myapplication3.app; // ww w . j av a2 s. c om import android.app.Activity; import android.os.Bundle; import android.view.MotionEvent; import android.view.View; import android.widget.HorizontalScrollView; import android.widget.TextView; public class MainActivity extends Activity implements View.OnTouchListener { private TextView mTouchText; private HorizontalScrollView mScrollView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mTouchText = (TextView) findViewById(R.id.text_touch); mScrollView = (HorizontalScrollView) findViewById(R.id.scroll_view); mTouchText.setOnTouchListener(this); } @Override public boolean onTouch(View v, MotionEvent event) { event.setLocation(event.getX(), mScrollView.getHeight() / 2); mScrollView.dispatchTouchEvent(event); return true; } }