昨天晚上调试了一晚上,在LinearLayout上接收屏幕动作,但是出现了问题, 下面的代码是本人调的代码
private int pressedArrow;public class onSetterTouchListener implements OnTouchListener {@Overridepublic boolean onTouch(View v, MotionEvent event) {float pt = event.getX();switch(event.getAction()) {case MotionEvent.ACTION_DOWN:if (pt > last_strpos && pt < last_endpos) {if (pt - last_strpos <= last_endpos - pt) {cur_strpos = pt;pressedArrow = R.id.start_pos;} else {cur_endpos = pt;pressedArrow = R.id.end_pos;}} else if (pt <= last_strpos) {cur_strpos = pt;pressedArrow = R.id.start_pos;} else if (pt >= last_endpos) {cur_endpos = pt;pressedArrow = R.id.end_pos;}requestLayout();Log.d(TAG, "down " + cur_strpos + " " + cur_endpos);last_endpos = cur_endpos;last_strpos = cur_strpos;break;case MotionEvent.ACTION_MOVE:Log.d(TAG, "MOVE " + cur_strpos + " " + cur_endpos);if (pressedArrow == R.id.start_pos) {if (pt < last_endpos)cur_strpos = pt;} else if (pressedArrow == R.id.end_pos) {if (pt > last_strpos)cur_endpos = pt;}requestLayout();last_endpos = cur_endpos;last_strpos = cur_strpos;break;case MotionEvent.ACTION_UP:updateCalibrator((int)cur_strpos);break;}return false;}}

这样一看这个OnTouchListener 的复写应该没什么问题,结尾处return false 代表该事件在此处已经被消费了,可是打开DDMS查看打印日志,当手指滑动到设置了上面Touch监听器的ImageView时,总是打印不出来ACTION_MOVE这里,很明显是根本没有进去,后来各种查问题都查不到,因为ACTION_DOWN是可以进入的,但是ACTION_MOVE和ACTION_UP却不行,已经不是代码的问题了。

各种查找才发现,要把设置监听的这个View的属性设置成 android:clickable="true" 这样才可以响应ACTION_MOVE和ACTION_UP了。

        


在这里记下了,也给别人提供一个方便


更多相关文章

  1. 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
  2. Android(安卓)MVP代码生成插件MVPHelper使用教程
  3. android之xml对象到json对象的转化
  4. Android手机客户端通过JSP实现与Tomcat服务器端通信(Msql数据库,Js
  5. Android(安卓)aidl 编译报couldn't find import for class
  6. 使用Android(安卓)AlarmManager类定时执行任务
  7. Android(安卓)HIDL学习(2) --- HelloWorld
  8. Eclipse Android(安卓)自动补全
  9. android 之AndroidManifest.xml

随机推荐

  1. Android(安卓)SurfaceView+Canvas画脉搏/
  2. Android通过基站获取地理位置
  3. Android获取网页上的图片的代码
  4. Android NDK开发介绍
  5. Android P WMS简介
  6. 应用内版本更新库UpdateVersion
  7. Android图片压缩、加水印
  8. android中 获取WiFi信息并计算wifi的信号
  9. android中的ProgressBar的使用方法
  10. git生成patch以及am patch