Dispatch event to a control
Description
The following code shows how to Dispatch event to a control.
Example
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;
//from w w w. j a va 2 s . c o m
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;
}
}