昨天晚上调试了一晚上,在LinearLayout上接收屏幕动作,可是出现了问题, 以下的代码是本人调的代码

</pre><pre name="code" class="java">private int pressedArrow;
public class onSetterTouchListener implements OnTouchListener { @Override
public 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了。

        <ImageView
android:id="@+id/track"
android:layout_width="match_parent"
android:layout_height="20dp"
android:clickable="true"
android:layout_gravity="center"
android:background="#00000000"
android:baselineAlignBottom="true"
android:visibility="visible" />

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

Android 中View仅仅能接收到ACTION_DOWN无法接收ACTION_MOVE和ACTION_UP解决的方法的更多相关文章

  1. Android中View的绘制过程 onMeasure方法简述 附有自定义View例子

    Android中View的绘制过程 onMeasure方法简述 附有自定义View例子 Android中View的绘制过程 当Activity获得焦点时,它将被要求绘制自己的布局,Android fr ...

  2. 源码解析Android中View的measure量算过程

    Android中的Veiw从内存中到呈现在UI界面上需要依次经历三个阶段:量算 -> 布局 -> 绘图,关于View的量算.布局.绘图的总体机制可参见博文< Android中View ...

  3. 【转】Android中View的绘制过程 onMeasure方法简述 附有自定义View例子

    Android中View的绘制过程 当Activity获得焦点时,它将被要求绘制自己的布局,Android framework将会处理绘制过程,Activity只需提供它的布局的根节点. 绘制过程从布 ...

  4. Android 中View的绘制机制源代码分析 三

    到眼下为止,measure过程已经解说完了,今天開始我们就来学习layout过程.只是在学习layout过程之前.大家有没有发现我换了编辑器,哈哈.最终下定决心从Html编辑器切换为markdown编 ...

  5. 源代码解析Android中View的layout布局过程

    Android中的Veiw从内存中到呈如今UI界面上须要依次经历三个阶段:量算 -> 布局 -> 画图,关于View的量算.布局.画图的整体机制可參见博文 < Android中Vie ...

  6. Android 中View的绘制机制源代码分析 一

    尊重原创: http://blog.csdn.net/yuanzeyao/article/details/46765113 差点儿相同半年没有写博客了,一是由于工作比較忙,二是认为没有什么内容值得写, ...

  7. Android 中View的绘制机制源代码分析 二

    尊重原创:http://blog.csdn.net/yuanzeyao/article/details/46842891 本篇文章接着上篇文章的内容来继续讨论View的绘制机制,上篇文章中我们主要解说 ...

  8. Android中View类OnClickListener和DialogInterface类OnClickListener冲突解决办法

    Android中View类OnClickListener和DialogInterface类OnClickListener冲突解决办法 如下面所示,同时导入这两个,会提示其中一个与另一个产生冲突. 1i ...

  9. Android中View绘制流程以及invalidate()等相关方法分析

    [原文]http://blog.csdn.net/qinjuning 整个View树的绘图流程是在ViewRoot.java类的performTraversals()函数展开的,该函数做的执行过程可简 ...

随机推荐

  1. 【bzoj4800】[Ceoi2015]Ice Hockey World Championship 折半搜索

    题目描述 有n个物品,m块钱,给定每个物品的价格,求买物品的方案数. 输入 第一行两个数n,m代表物品数量及钱数 第二行n个数,代表每个物品的价格 n<=40,m<=10^18 输出 一行 ...

  2. HDU——1715大菲波数(大数加法)

    大菲波数 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  3. [luoguP2774] 方格取数问题(最大点权独立集)

    传送门 引入两个概念: 最小点权覆盖集:满足每一条边的两个端点至少选一个的最小权点集. 最大点权独立集:满足每一条边的两个端点最多选一个的最大权点集. 现在对网格染色,使得相邻两点颜色不同,之后把两个 ...

  4. P1260 工程规划 (差分约束)

    题目链接 Solution 差分约束. 差分约束似乎精髓就两句话: 当我们把不等式整理成 \(d[a]+w<=d[b]\) 时,我们求最长路. 整理成 \(d[a]+w>=d[b]\) 时 ...

  5. hdu 6108 小C的倍数问题

    小C的倍数问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Sub ...

  6. angular关于依赖注入

    <html> <head> <title>Angular JS Forms</title> </head> <body> < ...

  7. 转 Python——UnicodeEncodeError: 'ascii' codec can't encode/decode characters

    转自: http://blog.csdn.net/zuyi532/article/details/8851316 我是写爬虫的时候遇到的问题,百度了一下,先贴解决方案: 在代码中加入: import ...

  8. js 判断变量是否为空

    js 判断变量是否为空 欢迎指正,补充! /** * 判断变量是否为空, * @param {[type]} param 变量 * @return {Boolean} 为空返回true,否则返回fal ...

  9. Cryptography I 学习笔记 --- 绪论

    课程地址 1. 密码学可以用于保证消息传递的机密性(第三方不可能得到明文)与完整性(密文如果被第三方篡改,有手段可以检测到) 2. 数字签名(用私钥加密待签名文件的hash值) 3. 匿名通信(mix ...

  10. GitHub 上受欢迎的 Android UI Library 整理二

    通知 https://github.com/Tapadoo/Alerter ★2528 - 克服Toast和Snackbar的限制https://github.com/wenmingvs/Notify ...