在OnTouchListener事件里有MotionEvent.ACTION_DOWN,MotionEvent.ACTION_UP和MotionEvent.ACTION_MOVE三个事件,我们在这里只讨论MotionEvent.ACTION_DOWN,MotionEvent.ACTION_UP,与MOVE无关.在下面的文章中我们简称MotionEvent.ACTION_DOWN为TouchDown,简称MotionEvent.ACTION_UP为TouchUp.我们还知道Android有消化事件…
1.事件分发:public boolean dispatchTouchEvent(MotionEvent ev) Touch 事件发生时 Activity 的 dispatchTouchEvent(MotionEvent ev) 方法会以隧道方式(从根元素依次往下传递直到最内层子元素或在中间某一元素中由于某一条件停止传递)将事件传递给最外层 View 的 dispatchTouchEvent(MotionEvent ev) 方法,并由该 View 的 dispatchTouchEvent(Mot…
附1: Android.mk与jni目录的关系: 在某目录下,如/src/modules1/下存放Android.mk和Application.mk,调用ndk-build试图编译时,会遇到如下错误: Android NDK: Could not find application project directory !     Android NDK: Please define the NDK_PROJECT_PATH variable to point to it.     /opt/and…
原因是onTouch返回了true把消息给消耗掉了,所以OnClickListener接收不到消息. 解决办法:onTouch返回false…
.xml <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="拨打电话" android:id="@+id/phone" /> .java package com.example.chenshuai.test322; import android.content.Intent;…
转帖自 http://www.eefocus.com/Kevin/blog/09-11/179409_1dc9a.html 作者: Kevin 本文转贴自 http://mmdays.com/2008/10/11/android-淺探二:系統架構/, Kevin修改了部分台湾习惯用法为大陆习惯用法,并针对含混的地方略作了修改. 本篇目的在尽量不触及技术细节的情况下简介 Android 架构,并探讨其设计的特殊处,以及在版权上的意义.主要资料来源为 Anatomy & Physiology of…
记得当时在刚接触Android时都在说不要用px,要用sp,所以在实际工作当中当然就按照这个规则,所以都要将px换算成sp,而我在实际工作中的换算规则是dp=px * 1.5,而且用这种规则到现在基本上都没什么问题,但是它们之间为啥要这样换算一直也没去研究,直到去年底的一次面试受打击让我觉得一定要研究清楚这里面的是是非非,当时面试官问我它们之间的换算规则是怎么样的,我记得是这样回答的:“这是一个标准公式,实际用过界面也没出过问题,而且也没必要深究”,哈哈,感觉当时这理由确实有点牵强,不过幸运的是…
写法一: private OnTouchListener pressOnTouchListener = new OnTouchListener(){ @Override public boolean onTouch(View view, MotionEvent event) { // TODO Auto-generated method stub switch (event.getAction()){ case MotionEvent.ACTION_DOWN: //按下 break; case…
1. View的边界,left, top, right, bottom(即左上右下),这些值都是相对View的父容器说的: 2. View的x, translationX, y, translationY, translationX/Y表示相对于left,top的偏移,一般用在View的translation动画中, 有如下的关系:x = left + translationX, y = top + translationY: 3. View的mScrollX,  mScrollY是指View的…
1.Service 如果没有单独指定线程的话,那么和主activity是在同一个线程的,就是主线程,那么也不能够在这个service中做耗时操作,否则一定会中断退出. 2.默认情况下,一个Android应用的所有组件是运行在一个进程中,并且运行在同一个也就是主线程中,但是可以在配置文件中通过组件的process属性指定对应的进程.一个Android应用就可以创建多个进程,每个进程对应着独立的Android虚拟机.进程之间内存是不可见得,他们之间的通信就要使用到内存间的通讯方法.…
ADT(Android Development Tools): 目前Android开发所用的开发工具是Eclipse,在Eclipse编译IDE环境中,安装ADT,为Android开发提供开发工具的升级或者变更,简单理解为在Eclipse下开发工具的升级下载工具.adt只是一个eclipse的插件,里面可以设置sdk路径    SDK(Software Development Kit): 一般是一些被软件工程师用于为特定的软件包.软件框架.硬件平台.操作系统等建立应用软件的开发工具的集合.在An…
ADT(Android Development Tools): 目前Android开发所用的开发工具是Eclipse,在Eclipse编译IDE环境中,安装ADT,为Android开发提供开发工具的升级或者变更,简单理解为在Eclipse下开发工具的升级下载工具.adt只是一个eclipse的插件,里面可以设置sdk路径    SDK(Software Development Kit): 一般是一些被软件工程师用于为特定的软件包.软件框架.硬件平台.操作系统等建立应用软件的开发工具的集合.在An…
首先,看Android的官方文档正解 onInterceptTouchEvent()与onTouchEvent()的机制: 1. down事件首先会传递到onInterceptTouchEvent()方法 2. 如果该ViewGroup的onInterceptTouchEvent()在接收到down事件处理完成之后return false, 那么后续的move, up等事件将继续会先传递给该ViewGroup,之后才和down事件一样传递给最 终的目标view的onTouchEvent()处理…
这是一个困扰我很就得问题.今天在我的反复摸索下,总结出了一些个规律. 以下测试以魅族mx5为例. 手机参数:5.5英寸:高:1920:宽1080. /** * 获得屏幕的宽度 * * @param context * @return */ public static int getScreenWidth(Context context) { DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics(); re…
引自:http://5200415.blog.51cto.com/3851969/1003113 android应用中常用的监听OnTouchListener.OnClickListener.OnLongClickListener. 首先在Activity中创建一个button,然后对这个button同时设置OnTouchListener.OnClickListener.OnLongClickListener这三种监听方式. package com.example.testlistenerdem…
这几天遇到点关于Android的触摸事件相关的,还跟onClick有关.暂且记下: LinearLayout分别设置了onTouchListener,onClickListener,onLongClickListener及onTouchEvent回调 1.在屏幕上触摸之后主要的运行流程例如以下: onTouch,action=0 onTouchEvent,action=0 onTouch,action=2 onTouchEvent,action=2 onTouch,action=2 onTouc…
1.Android与Linux和Java的关系 Android严格来说,不能算是Linux,Android是一个统称,具体来说,是Google用了Linux的一个核心,用这个核心来管理进程,控制硬件.然后google利用java技术,搞了自己的一个虚拟机,给应用软件一个运行的平台.java技术本来是SUN公司的,SUN有自己的标准(有用在手机上的,有用在服务器上的),但是Google感觉sun的方案限制太多.于是用java技术另外搞了一套,这个就是Android. Android上面的程序都是运…
OnLongClickListener中的回调函数boolean onLongClick(View v),其返回值的官方释义如下 如果这个回调消耗了长点击,则返回true,否则返回false. 即使翻译成中文,仍然不知所云== 事实上,这个返回值的意义在于:如果给View设置了OnClickListener和OnLongClickListener两个点击监听器,当返回true时,onClick不会被触发:否则触发onClick 参考博文:OnLongClickListener的判断流程 - 简书…
一直想写事件分发机制的文章,不管咋样,也得自己研究下事件分发的源码,写出心得~ 首先我们先写个简单的例子来测试View的事件转发的流程~ 1.案例 为了更好的研究View的事件转发,我们自定以一个MyButton继承Button,然后把跟事件传播有关的方法进行复写,然后添加上日志~ MyButton package com.example.zhy_event03; import android.content.Context; import android.util.AttributeSet;…
android组件中的onTouch,onClick,onLongClick事件发生先后顺序和关联: 一,onTouch返回false 首先是onTouch事件的down事件发生,此时,如果长按,触发onLongClick事件:然后是onTouch事件的up事件发生,up完毕,最后触发onClick事件. 二,onTouch返回true 首先是onTouch事件的down事件发生,然后是onTouch事件的up事件发生:期间不触发onClick和onLongClick事件 三,onTouch:d…
首先我们先写个简单的例子来测试View的事件转发的流程~ 1.案例 为了更好的研究View的事件转发,我们自定以一个MyButton继承Button,然后把跟事件传播有关的方法进行复写,然后添加上日志~ MyButton package com.example.zhy_event03; import android.content.Context; import android.util.AttributeSet; import android.util.Log; import android.…
一直想写事件分发机制的文章,无论咋样,也得自己研究下事件分发的源代码.写出心得~ 首先我们先写个简单的样例来測试View的事件转发的流程~ 1.案例 为了更好的研究View的事件转发,我们自定以一个MyButton继承Button,然后把跟事件传播有关的方法进行复写.然后加入上日志~ MyButton package com.example.zhy_event03; import android.content.Context; import android.util.AttributeSet;…
前言 很高兴遇见你~ 本文是事件分发系列的第三篇. 在前两篇文章中,Android事件分发机制一:事件是如何到达activity的? 分析了事件分发的真正起点:viewRootImpl,Activity只是其中的一个环节:Android事件分发机制二:viewGroup与view对事件的处理 源码解析了viewGroup和view是如何分发事件的. 事件分发的核心内容,则为viewGroup和view对事件的分发,也就是第二篇文章.第二篇文章对源码的分析较为深入,缺乏一个更高的角度来审视事件分发…
前言 很高兴遇见你~ 事件分发系列文章已经到最后一篇了,先来回顾一下前面四篇,也当个目录: Android事件分发机制一:事件是如何到达activity的? : 从window机制出发分析了事件分发的整体流程,以及事件分发的真正起点 Android事件分发机制二:viewGroup与view对事件的处理 : 源码分析了viewGroup和view是如何分发事件的 Android事件分发机制三:事件分发工作流程 : 分析了触摸事件在控件树中的分发流程模型 Android事件分发机制四:学了事件分发…
转载请声明出处,谢谢!http://www.cnblogs.com/linguanh/ 先上效果图,给大家个直观效果,后上实现代码:  ->  ->->  ok,现在简单说下我上面的图片被做了什么操作,长按“休闲场所”,然后代码实现 震动,告诉用户,现在可以移动了,然后我把它和“海滨沿岸” 互换位置,注意此时的 图片是 半透明的,这些都是自定义特效,可以任意改. 代码来了: 这里我先给出,布局文件不含(ViewPager),这个根据个人修改的. <?xml version=&quo…
原文链接:http://www.apkbus.com/home.php?mod=space&uid=705730&do=blog&id=61207 上次跟大家分享了一下自定义View的一下要点,这次跟大家聊一下View的事件分发及处理,为什么主题都是View,因为作为一名初级应用层Android工程师,跟我打交道最多的莫过于各种各样的View,只有详细了解他们各自的习性,才能更好地跟他们沟通交流,做出自己想要的效果. 基础储备 View.MotionEvent 我们都能详细地说出A…
这几天遇到点关于Android的触摸事件相关的,还跟onClick有关,暂且记下: LinearLayout分别设置了onTouchListener,onClickListener,onLongClickListener及onTouchEvent回调 1.在屏幕上触摸之后基本的执行流程如下: onTouch,action=0onTouchEvent,action=0onTouch,action=2onTouchEvent,action=2onTouch,action=2onTouchEvent,…
上次跟大家分享了一下自定义View的一下要点,这次跟大家聊一下View的事件分发及处理,为什么主题都是View,因为作为一名初级应用层Android工程师,跟我打交道最多的莫过于各种各样的View,只有详细了解他们各自的习性,才能更好地跟他们沟通交流,做出自己想要的效果. 基础储备 View.MotionEvent 我们都能详细地说出Android的四大组件:Activity,Service,ContentProvider和BoardcastReceiver,但是四大组件之外,我们用到也很多的是…
接着上次的记录,续写. 23.services文件夹 文件 描写叙述 class AlarmManagerService extends IAlarmManager.Stub { //定时管理服务 public class AppOpsService extends IAppOpsService.Stub {  // 程序选项服务 public class AppsLaunchFailureReceiver extends BroadcastReceiver {  //app启动失败广播 cla…
一.实现Linux下dc的功能,计算后缀表达式的值 public int evaluate(String expr) { int op1, op2, result = 0; String token; StringTokenizer tokenizer = new StringTokenizer(expr); while (tokenizer.hasMoreTokens()) { token = tokenizer.nextToken(); //如果是运算符,调用isOperator if (i…