getX()是表示Widget相对于自身左上角的x坐标,而getRawX()是表示相对于屏幕左上角的x坐标值(注意:这个屏幕左上角是手机屏幕左上角,不管activity是否有titleBar或是否全屏幕),getY(),getRawY()一样的道理如果你的某个Activity中实现OnTouchListener接口,需要重写 onTouch(View view,MotionEvent event) 这个方法, getRawX()和getRawY()获得的是相对屏幕的位置,getX()和getY(…
在Android的View中getX  getRawX获取的坐标是不一样的,只是相对比照的对象不一样而已. 1.在View中: getX()是表示Widget相对于自身左上角的x坐标,而getRawX()是表示相对于屏幕左上角的x坐标值(注意:这个屏幕左上角是手机屏幕左上角,不管activity是否有titleBar或是否全屏幕),getY(),getRawY()一样的道理 2.View和Activity又是不一样的,如果在Activity中: 如果你的某个Activity中实现OnTouchL…
getRowX:触摸点相对于屏幕的坐标getX: 触摸点相对于按钮的坐标getTop: 按钮左上角相对于父view(LinerLayout)的y坐标getLeft: 按钮左上角相对于父view(LinerLayout)的x坐标getRight():等同于下面的计算:getLeft()+getWidth(). 当你触到按钮时,x,y是相对于该按钮左上点的相对位置.而rawx,rawy始终是相对于屏幕的位置getX()和getY()获得的永远是view的触摸位置坐标(这两个值不会超过view的长度和…
public class Res extends Activity implements View.OnTouchListener { Button btn = null; int x = 0; int y = 0; int rawx = 0; int rawy = 0; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.…
http://blog.csdn.net/ztp800201/article/details/17218067 public class Res extends Activity implements View.OnTouchListener { Button btn = null; int x = 0; int y = 0; int rawx = 0; int rawy = 0; @Override public void onCreate(Bundle savedInstanceState)…
View 提供了如下 5 种方法获取 View 的坐标:1. View.getTop().View.getLeft().View.getBottom().View.getRight();2. View.getX().View.getY();3. View.getTranslationX().View.getTranslationY();4. View.getLocationOnScreen(int[] position);5. View.getLocationInWindow(int[] pos…
一.View基础知识 View 是Android中所有控件的基类,是一种界面层的控件的一种抽象,代表了一个控件 1.View的位置参数 View的四个属性:top(左上角纵坐标)     left(左上角横坐标)    right(右上角横坐标)   bottom(右下角纵坐标) 注意:这些坐标都是相对于View的父容器来说,因此它是一种相对坐标 所以view的宽高和坐标的关系: width = right-left height= bottom-top 在View的源码中获取View的四个参数…
Android艺术开发探索第三章----View的事件体系(上) 我们继续来看这本书,因为有点长,所以又分了上下,你在本片中将学习到 View基础知识 什么是View View的位置参数 MotionEvent和TouchSlop VelocityTracker,GestureDetector和Scroller View的滑动 使用scrollTo/scrollBy 使用动画 改变布局参数 各种滑动方式的对比 弹性滑动 使用Scroller 通过动画' 使用延时策略 这章的概念偏自定义View方…
View的事件体系 本章介绍View的事件分发和滑动冲突问题的解决方案. 3.1 view的基础知识 View的位置参数.MotionEvent和TouchSlop对象.VelocityTracker.GestureDetector和Scroller对象. 3.1.1什么是view View是Android中所有控件的基类,View的本身可以是单个空间,也可以是多个控件组成的一组控件,即ViewGroup,ViewGroup继承自View,其内部可以有子View,这样就形成了View树的结构.…
1.View基础知识 1.1.什么是View View是Android中所有控件的基类.View是一种界面层的控件的一种抽象,代表了一个控件.除了View,还有ViewGroup,内部包含了许多个控件,即一组View. 1.2.View的位置参数 View的位置主要由它的四个顶点来决定,分别对应于View的四个属性:top.left.right.bottom,其中top是左上角纵坐标,left是左上角横坐标,right是右下角横坐标,bottom是右下角纵坐标.这些坐标都是相对于View的父容器…
前言 在前面的文章中,介绍了不少触摸相关的知识,但都是基于单点触控的,即一次只用一根手指.但是在实际使用App中,常常是多根手指同时操作,这就需要用到多点触控相关的知识了.多点触控是在Android2.0开始引入的,在现在使用的Android手机上都是支持多点触控的.本文将对常见的多点触控相关的重点知识进行总结,并使用多点触控来实现一些常见的效果,从而达到将理论知识付诸实践的目的. 一.触摸事件感应的产生原理 在介绍多点触控前,我们先了解一下现在手机屏幕触摸事件感应的原理. 当前手机使用的屏幕一…
屏幕左上角为原点,向右为 x 轴, 向下为 y 轴. getLeft getTop getRight getBottom 分别返回 view 的左上右下的坐标,这里的坐标都是相对于view的父view来说的. width = getRight() - getLeft() height = getBottom() - getTop() MotionEvent 中 getX/getY 返回的是相对于当前 view 左上角 x 和 y 的坐标, getRawX/getRaxY 返回的是相对于手机屏幕左…
Android Touch Screen 与传统Click Touch Screen不同,会有一些手势(Gesture),例如Fling,Scroll等等.这些Gesture会使用户体验大大提升. Android中的Gesture识别(detector)是通过GestureDetector.OnGestureListener接口实现的. 首先,Android事件处理机制是基于Listener实现的,比如触摸屏相关的事件,就是通过onTouchListener实现: 其次,所有View的子类都可以…
转载https://blog.csdn.net/huaxun66/article/details/52352469 MotionEvent MotionEvent对象是与用户触摸相关的时间序列,该序列从用户首次触摸屏幕开始,经历手指在屏幕表面的任何移动,直到手指离开屏幕时结束.手指的初次触摸(ACTION_DOWN操作),滑动(ACTION_MOVE操作)和抬起(ACTION_UP)都会创建MotionEvent对象,每次触摸时候这三个操作是肯定发生的.移动过程中也会产生大量事件,每个事件都会产…
View 提供了如下 5 种方法获取 View 的坐标:1. View.getTop().View.getLeft().View.getBottom().View.getRight();2. View.getX().View.getY();3. View.getTranslationX().View.getTranslationY();4. View.getLocationOnScreen(int[] position);5. View.getLocationInWindow(int[] pos…
小知识点总结 1. android中MotionEvent.ACTION_CANCEL事件如何被触发? 对于这个问题,android文档的说明很简短,想看明白很难.国外一网页说的还比较详细,写在这里分享给大家: 原文是这样的: You receive this when a parent takes possession of the motion, for example when the user has dragged enough across a list view or scroll…
手机屏幕事件的处理方法onTouchEvent.该方法在View类中的定义,并且所有的View子类全部重写了该方法,应用程序可以通过该方法处理手机屏幕的触摸事件.该方法的签名如下所示. public boolean onTouchEvent(MotionEvent event) 参数event:参数event为手机屏幕触摸事件封装类的对象,其中封装了该事件的所有信息,例如触摸的位置.触摸的类型以及触摸的时间等.该对象会在用户触摸手机屏幕时被创建. 返回值:该方法的返回值机理与键盘响应事件的相同,…
如果大家不知道GridView基本使用,可以先参见:Android(java)学习笔记154:使用GridView以及重写BaseAdapter 1. 首先我们明白GridView拖拽的思路: ()根据手指按下的X,Y坐标来获取我们在GridView上面点击的item. ()手指按下的时候使用Handler和Runnable来实现一个定时器,假如定时时间为1000毫秒,在1000毫秒内,如果手指抬起了移除定时器,没有抬起并且手指点击在GridView的item所在的区域,则表示我们长按了Grid…
一.首先说一下定义这样一个View有什么用?在一些app中,需要设置头像,而用户选择的图片可能是使用摄像头拍摄,也可能是选择的相册里面的图片,总之,这样的图片大小不一,就比如在使用某个聊天软件的时候,设置头像,需要对图片进行截取. 要实现这样一个功能,首先,需要分析用户的操作,即用户所点击的View的位置,如下图,我把View分为9个区域, 当ACTION_DOWN时如果坐标为1.2.3.4四个区域,则对View进行相应的左上/右上/左下/右下拉伸; 当ACTION_DOWN时如果坐标为5.6.…
Android Touch Screen 与传统Click Touch Screen不同,会有一些手势(Gesture),例如Fling,Scroll等等.这些Gesture会使用户体验大大提升.Android中的Gesture识别(detector)是通过GestureDetector.OnGestureListener接口实现的. 首先,Android事件处理机制是基于Listener实现的,比如触摸屏相关的事件,就是通过onTouchListener实现: 其次,所有View的子类都可以通…
Android群英传笔记--第五章:Android Scroll分析 滑动事件算是Android比较常用的效果了,而且滑动事件他本身也是有许多的知识点,今天,我们就一起来耍耍Scroll吧 一.滑动效果是如何产生的 滑动一个View的本质其实就是移动一个View,改变其当钱所在的位置,他的原理和动画效果十分的相似,就是通过不断的改变View的坐标来实现这一效果,动态且不断的改变View的坐标,从而实现View跟随用户触摸滑动而滑动 但是在讲解滑动效果之前,需要先了解一下Android中窗口坐标体…
自定义控件分类: 1.使用系统控件,实现自定义的效果 2.自己定义一个类继承View ,如textView.ImageView等,通过重写相关的方法来实现新的效果 3.自己定义一个类继承ViewGroup,实现相应的效果 继承view类或viewgroup类,来创建所需要的控件.一般来讲,通过继承已有的控件来自定义控件要简单一点.   介绍下实现一个自定义view的基本流程 1.明确需求,确定你想实现的效果. 2.确定是使用组合控件的形式还是全新自定义的形式,组合控件即使用多个系统控件来合成一个…
当屏幕可以装下内容的时候,他们的值相等,只有当view超出屏幕后,才能看出他们的区别:getMeasuredHeight()是实际View的大小,与屏幕无关,而getHeight的大小此时则是屏幕的大小.当超出屏幕后,getMeasuredHeight()等于getHeight()加上屏幕之外没有显示的大小.getHeight()是布局以后的屏幕高度动态改变布局大小的方法:LayoutParams lp = 控件ID.getLayoutParams();lp.height = 320;(单位是像…
手机屏幕事件的处理方法onTouchEvent.该方法在View类中的定义,并且所有的View子类全部重写了该方法,应用程序可以通过该方法处理手机屏幕的触摸事件.该方法的签名如下所示. public boolean onTouchEvent(MotionEvent event) 参数event:参数event为手机屏幕触摸事件封装类的对象,其中封装了该事件的所有信息,例如触摸的位置.触摸的类型以及触摸的时间等.该对象会在用户触摸手机屏幕时被创建. 返回值:该方法的返回值机理与键盘响应事件的相同,…
Android Touch Screen 与传统Click Touch Screen不同,会有一些手势(Gesture),例如Fling,Scroll等等.这些Gesture会使用户体验大大提升.Android中的Gesture识别(detector)是通过GestureDetector.OnGestureListener接口实现的. 首先,Android事件处理机制是基于Listener实现的,比如触摸屏相关的事件,就是通过onTouchListener实现: 其次,所有View的子类都可以通…
Gesture detector Android Touch Screen 与传统Click Touch Screen不同,会有一些手势(Gesture),例如Fling,Scroll等等. 这些Gesture会使用户体验大大提升.Android中的Gesture识别(detector)是通过GestureDetector.OnGestureListener接口实现的. Android事件处理机制是基于Listener实现的,比如触摸屏相关的事件,就是通过onTouchListener实现: 所…
很多时候,利用触摸屏的Fling.Scroll等Gesture(手势)操作来操作会使得应用程序的用户体验大大提升,比如用Scroll手势在 浏览器中滚屏,用Fling在阅读器中翻页等.在Android系统中,手势的识别是通过 GestureDetector.OnGestureListener接口来实现的,不过William翻遍了Android的官方文档也没有找到一个相 关的例子,API Demo中的TouchPaint也仅仅是提到了onTouch事件的处理,没有涉及到手势.Android Dev…
转自:https://www.gcssloop.com/customview/CustomViewIndex/ 1.坐标系 2.角度弧度 3.颜色 一.屏幕坐标系和数学坐标系的区别 由于移动设备一般定义屏幕左上角为坐标原点,向右为x轴增大方向,向下为y轴增大方向, 所以在手机屏幕上的坐标系与数学中常见的坐标系是稍微有点差别的,详情如下: (PS:其中的∠a 是对应的,注意y轴方向!) 实际屏幕上的默认坐标系如下: PS: 假设其中棕色部分为手机屏幕 二.View的坐标系 注意:View的坐标系统…
PS:好久没有写博客了,之前的东西有所忘记,百度一下竟然查到了自己的写过的博客,访问量还可以,一开始的写博客的初衷是把自己不会的记录下来,现在没想到也有博友会关注我,这就给了我动力,工作之余把零零碎碎的东西总结一下,供大家参考.下面的博文是我自己的总结再加上博友的一些见解整合而成,共同进步. 初识View 在安卓中所有的样式都可以说是一个视图,TextView,Button,ImageView...这些官方已经给出的view已经无法满足我们的日常生活所需了,这个时候,我们就可以自定义View,随…