效果图:
触摸 TextView 转化为给HorizotalScrollView的触摸事件
代码一: activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="${relativePackage}.${activityClass}" >
<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/dongzhi" />
<ImageView
android:layout_width="250dp"
android:layout_height="match_parent"
android:scaleType="fitXY"
android:src="@drawable/hanlu" />
<ImageView
android:layout_width="250dp"
android:layout_height="match_parent"
android:scaleType="fitXY"
android:src="@drawable/liqiu" />
<ImageView
android:layout_width="250dp"
android:layout_height="match_parent"
android:scaleType="fitXY"
android:src="@drawable/xiaohan" />
</LinearLayout>
</HorizontalScrollView>
</LinearLayout>
代码二: MainActivity.java
public class MainActivity extends Activity implements 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);
//在TextView上的触摸事件进行转化为HorizotalScrollView上
}
@Override
public boolean onTouch(View v, MotionEvent event) {
event.setLocation(event.getX(), mScrollView.getHeight()/2);
mScrollView.dispatchTouchEvent(event);
//#关键语句# dispatchTouchEvent
//让HorizotalScrollView去处理event事件
return true;
}
}