首页 > 代码库 > Android 事件中 OnTouch 事件
Android 事件中 OnTouch 事件
Android 事件中 OnTouch 事件:
实现的方式:
1 监听
2 回调
1 监听:
package com.example.conflicttest; import android.os.Bundle; import android.app.Activity; import android.util.Log; import android.view.Menu; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; import android.widget.ImageView; import android.widget.LinearLayout; public class MainActivity extends Activity implements OnTouchListener { private LinearLayout subLayout; private ImageView imgView; /* (non-Javadoc) * @see android.app.Activity#onCreate(android.os.Bundle) */ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); subLayout = (LinearLayout) findViewById(R.id.subLayout); imgView = (ImageView) findViewById(R.id.imgView); // subLayout.setOnTouchListener(this); /** * 事件监听 第一种方案: 设置监听! * */ imgView.setOnTouchListener(this); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } /** * return false 事件 返回调用,传递给 父类! * */ @Override public boolean onTouch(View v, MotionEvent event) { // TODO Auto-generated method stub int action = event.getAction(); float rawX = event.getRawX(); float rawY = event.getRawY(); float x = event.getX(); float y = event.getY(); Log.d("lvoe", "----on touch:" + v + " raw[" + rawX + "," + rawY + "],xy[" + x + "," + y + "]"); return true; } }
2 回调“:
package com.example.conflicttest; import android.content.Context; import android.util.AttributeSet; import android.util.Log; import android.view.MotionEvent; import android.widget.LinearLayout; /** * @author hades * * */ public class CustomLinerLayout extends LinearLayout { public CustomLinerLayout(Context context) { super(context); // TODO Auto-generated constructor stub } public CustomLinerLayout(Context context, AttributeSet attrs) { super(context, attrs); // TODO Auto-generated constructor stub } public CustomLinerLayout(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); // TODO Auto-generated constructor stub } /** * * 第二中实现方式: * * 自定义 视图类: * * 处理 触摸事件,可以使用 onTouch() * * */ @Override public boolean onTouchEvent(MotionEvent event) { // TODO Auto-generated method stub float rawX = event.getRawX(); float rawY = event.getRawY(); float x = event.getX(); float y = event.getY(); Log.d("lvoe", "----on touch:" + " raw x y = [" + rawX + "," + rawY + "],x,y=[" + x + "," + y + "]"); return super.onTouchEvent(event); } }
Android 事件中 OnTouch 事件
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。