https://blog.csdn.net/bigconvience/article/details/26697645 Android系统手机屏幕的左上角为坐标系,同时y轴方向与笛卡尔坐标系的y轴方向想反.通过提供的api如getLeft , getTop, getBottom, getRight可以获得控件在parent中的相对位置.同时,也可以获得控件在屏幕中的绝对位置,详细用法可参考android应用程序中获取view的位置 当我们编写一些自定义的滑动控件时,会用到一些api如scroll…
Android系统手机屏幕的左上角为坐标系,同时y轴方向与笛卡尔坐标系的y轴方向想反.提供了 getLeft(), getTop(), getBottom(), getRight() 这些API来获取控件在Parent中的相对位置.同时也提供了 getLocalVisibleRect() getGlobalVisibleRect() getLocationOnScreen() getLocationInWindow() 这些API来获取控件在屏幕中的绝对位置.详情可参考:android应用程序中…
下载地址:源代码 当利用 Scroller 去滑动屏幕或者扩展 ScrollView 的时候,总是会用到 getScrollX 和 getScrollY 去获取当前View 滑动到的位置,那么getScrollX() 和 getScrollY() 获取的究竟是什么呢? 因为getScrollX 和 getScrollY 本质 上是一样的东西.以下仅仅说明一下getScrollX, 通常是在屏幕上面左右划动的时候会去获取这个值. 请看下图: 图上面,褐色的框,事实上就是我们眼睛看到的手机界面.就是…
参考资料:http://blog.csdn.net/vipzjyno1/article/details/24577023 非常感谢这个兄弟! 先查看这2个方法的源码: scrollTo: 1 /** 2 * Set the scrolled position of your view. This will cause a call to 3 * {@link #onScrollChanged(int, int, int, int)} and the view will be 4 * invali…
这篇文章写的不错,Mark一下 http://blog.csdn.net/sinat_29912455/article/details/51073537…
闲聊 View,对我们来说在熟悉不过了,从接触 Android 开始,我们就一直在接触 View,界面当中到处都是 View,比如我们经常用到的 TextView,Button,LinearLayout 等等,但是我们真的了解 View 吗?尤其是 View 的坐标. mLeft, mRight, mY, mX, mTranslationY, mScoollY 相对于屏幕的坐标等等这些概念你真的清楚了吗?如果真的清楚了,那你没有必要读这篇博客,如果你还是有一些模糊,建议花上几分钟的时间读一下.…
其实一种好的UI布局,可以使用户感到更加的亲切与方便.最近非常流行的莫过于侧边栏了,其实我也做过很多侧边栏的应用,但是那些侧边栏的使用我 都不是很满意,现在重新整理,重新写了一个相对来说我比较满意的侧边栏,其中运用的就是android3.0版本之后新加的Fragment碎片化,碎片 化的使用将来也是一个趋势,所以通过我这个程序你既可以学到侧边栏,也能让你更加熟悉碎片化的使用,一举两得的事.哈哈……废话不多说了,直接上图.图片 如下: ①.自定义一个View,把左侧边栏视图,中间内容视图,右侧边栏…
前言:前两天看了自定义控件,其中有一些东西我觉得有必要深入理解一下 以下图为例: getX(),getY()返回的是触摸点A相对于view的位置 getRaw(),getRawY()返回的是触摸点B相对于phone(屏幕)的位置. scrollTo是将View中的内容移动到指定的坐标x,y处,此x,y是相对于View的左上角来说,而不上屏幕的左上角. 当ScrollTo(-30,50)时,它从正中心移动到了右上方 可能有些人对此有疑问,按照惯性思维,view中的内容应该是移动到左上方的,我们点进…
android 系统虽然提供了很多基本的控件,如Button.TextView等,但是很多时候系统提供的view不能满足我们的需求,此时就需要我们根据自己的需求进行自定义控件.这些控件都是继承自View的. 一.android 控件架构 android 中的控件在界面上都会占一块巨型区域,主要分为两类:ViewGroup和View控件.ViewGroup作为父控件可以包含多个View控件,并管理他们,但其也是继承自View.通过Viewgroup,整个控件界面形成了View的控件树,如图1所示.…
layout() 如果你将滑动后的目标位置的坐标传递给layout(),这样子就会把view的位置给重新布置了一下,在视觉上就是view的一个滑动的效果. public class DragView extends View{ private int lastX; private int lastY; public DragView(Context context, AttributeSet attrs) { super(context, attrs); } public boolean onT…
  涉及到滑动,就涉及到VIEW,大家都知道,Android的UI界面都是由一个一个的View以及View的派生类组成,View作为基类,而常用的布局里面的各种布局就是它派生出来的ViewGroup的子类,ViewGroup作为各个组件的容器搭建了整体的UI.以下是android UI的结构示示意图: 查看源码 /** * Implement this to do your drawing. * * @param canvas the canvas on which the background…
转:http://blog.csdn.net/yanbober/article/details/50419117 1 背景 去年有很多人私信告诉我让说说自定义控件,其实通观网络上的很多博客都在讲各种自定义控件,但是大多数都是授之以鱼,却很少有较为系统性授之于渔的文章,同时由于自己也迟迟没有时间规划这一系列文章,最近想将这一系列文章重新提起来,所以就来先总结一下自定义控件的一个核心知识点——坐标系. 很多人可能不屑一顾Android的坐标系,但是如果你想彻底学会自定义控件,我想说了解Android…
承接上一篇,如果你没有读过前四章方法,可以点击下面的链接: http://www.cnblogs.com/fuly550871915/p/4985053.html 下面开始讲第五中方法. 五.利用Scroller类实现滑动 (1)基础知识总结 为了便于下面的阅读代码,先来总结一下关于Scroller类的基础知识.利用Scroller类实现滑动,需要三个步骤: 步骤一: 初始化Scroller对象,即mScroller = new Scroller(context)步骤二: 重写computeSc…
涉及到滑动,就涉及到VIEW,大家都知道,Android的UI界面都是由一个一个的View以及View的派生类组成,View作为基类,而常用的布局里面的各种布局就是它派生出来的ViewGroup的子类,ViewGroup作为各个组件的容器搭建了整体的UI.以下是android UI的结构示示意图: 查看源码 [java] view plain copy 在CODE上查看代码片派生到我的代码片 /** * Implement this to do your drawing. * * @param…
本节和<Android群英传>中的第五章Scroll分析有关系,建议先阅读该章的总结 第3章 View的事件体系 3.1 View基本知识 (1)view的层次结构:ViewGroup也是View:(2)view的位置参数:top.left.right.bottom,分别对应View的左上角和右下角相对于父容器的横纵坐标值.从Android 3.0开始,view增加了x.y.translationX.translationY四个参数,这几个参数也是相对于父容器的坐标.x和y是左上角的坐标,而t…
Android  View视图系统分析和Scroller和OverScroller分析 View  视图分析         首先,我们知道.在Android中全部的视图资源(无论是Layout还是View),终于的父类都是View类.各式各样的Layout仅仅是对ViewGroup的一中特别的实现.各种View也仅仅是View的特别实现. 而ViewGroup也是对于View的一种实现.所以说全部的View元素在根本上都是一样的.当然这并不等于说View == ViewGroup,就好比仅仅有…
Android艺术开发探索第三章----View的事件体系(上) 我们继续来看这本书,因为有点长,所以又分了上下,你在本片中将学习到 View基础知识 什么是View View的位置参数 MotionEvent和TouchSlop VelocityTracker,GestureDetector和Scroller View的滑动 使用scrollTo/scrollBy 使用动画 改变布局参数 各种滑动方式的对比 弹性滑动 使用Scroller 通过动画' 使用延时策略 这章的概念偏自定义View方…
前言 由于最近在写一个涉及移动方面的自定义View,在做移动的时候用到了类似offsetTopAndBottom .setTranslationY.scrollTo.scrollBy等方法,对于他们的使用,有一些不太清晰的地方.比如,view的getX/Y.getSrollX/Y.getTranslationX/Y.getLeft/top/right/bottom.点击事件触发区域等等 是否会受到影响改变,由哪些所影响. 因为View的属性有点多,所以,很多时候你不知道哪些属性受哪些方法影响,并…
引言 View的滑动这一块在实际开发中是非常重要的,无论是优秀的用户体验还是自定义控件都是需要对这一块了解的,我们今天来谈一下View的滑动. View的滑动 View滑动功能主要可以使用3种方式来实现:第一种是通过View的scrollTo/scrollBy方法来实现滑动.第二种是通过动画给View添加平移效果来实现滑动.第三种就是通过修改View的LayoutParams来实现View的滑动.下面我们来依次介绍. scrollTo/scrollBy方法 为了实现View的滑动,View类实现…
前言 近期在做项目时,使用了一个开源的下拉刷新ListView组件.极其的不稳定,bug还多.稳定的组件又写得太复杂了,jar包较大.在我的一篇博客中也讲述过下拉刷新的实现,即Android打造(ListView.GridView等)通用的下拉刷新.上拉自己主动载入的组件.可是这样的通过改动Margin的形式感觉不是特别的流畅,因此在这漫长的国庆长假又花了点时间用另外的原理实现了一遍,特此分享出来. 基本原理 原理就是自己定义一个ViewGroup,将Header View, Content V…
版本号:1.0  日期:2014.6.17  2014.6.18 版权:© 2014 kince 转载注明出处   scrollTo() .scrollBy()及 Scroller在视图滑动中常常使用到.比方最常见的Launcher就是用这种方式实现. 为了更加明了的理解.还是去看一下源代码.在View类中.scrollTo的代码例如以下: /** * Set the scrolled position of your view. This will cause a call to * {@li…
滑动是Android开发中非常重要的UI效果,几乎所有应用都包含了滑动效果,而本文将对滑动的使用以及原理进行介绍. 一.scrollTo与ScrollBy View提供了专门的方法用于实现滑动效果,分别为scrollTo与scrollBy.先来看看它们的源码: /** * Set the scrolled position of your view. This will cause a call to * {@link #onScrollChanged(int, int, int, int)}…
View 的绘制系列文章: Android View 绘制流程之 DecorView 与 ViewRootImpl Android View 的绘制流程之 Measure 过程详解 (一) Android View 的绘制流程之 Layout 和 Draw 过程详解 (二) Android View 的事件分发原理解析 对于 Android 开发者来说,原生控件往往无法满足要求,需要开发者自定义一些控件,因此,需要去了解自定义 view 的实现原理.这样即使碰到需要自定义控件的时候,也可以游刃有…
参考链接: http://blog.csdn.net/chunqiuwei/article/details/50679568# http://blog.csdn.net/zly921112/article/details/50436538 view滑动种类: 1.根据layout()方法来产生滑动 xml代码 (下面的布局也是这个一样的) <?xml version="1.0" encoding="utf-8"?> <LinearLayout xm…
3.1 View的基础知识 主要有:View的位置参数,MotionEvent和TouchSlop对象,VelocityTracker,GestureDetector和Scroller对象 3.1.1 View view是android中所有控件的基类,是一种界面层的控件的一种抽象. ViewGroup(控件组),内部包含了很多个控件,即一组view 3.1.2 View的位置参数 View的位置主要由它的四个顶点来决定:top(左上角纵坐标),left(左上角横坐标),right(右下角横坐标…
Android开发艺术探索笔记 --View(一) View的基础知识 什么是View View是Android中所有控件的基类.是一种界面层控件的抽象. View的位置参数 参数名 获取方式 含义 top getTop() View左上角纵坐标 left getLeft() View左上角横坐标 bottom getBottom() View右下角纵坐标 right getRight() View右下角横坐标 View:x/y getX()/getY() View左上角坐标 translati…
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的父容器…
View滑动的基本思想:当点击事件传到View时,系统记下触摸点的坐标,手指移动时系统记下触摸后的坐标并计算出偏移量,然后根据偏移量修正View坐标. 实现View滑动共有6种方法:layout()方法,offsetTopAndBottom(),LayoutParams,动画,scrollTo与scrollBy,以及Scroller. 一.layout() import ...; public class CustomView extends View { private int lastX;…
目录: android 开发 View _2_ View的属性动画ObjectAnimator ,动画效果一览 android 开发 View _3_ View的属性动画ValueAnimator android 开发 View _4_ 我的简单自定义ViewDemo android 开发 View _5_ Paint详解 android 开发 View _6_Canvas详解 android 开发 View _7_ 动态自定义View android 开发 View _8_ 动态图片自定义Vi…
1.View的滑动简介 View的滑动是Android实现自定义控件的基础,同时在开发中我们也难免会遇到View的滑动的处理.其实不管是那种滑动的方式基本思想都是类似的:当触摸事件传到View时,系统记下触摸点的坐标,手指移动时系统记下移动后的触摸的坐标并算出偏移量,并通过偏移量来修改View的坐标.实现View滑动有很多种方法,这篇文章主要讲解六种滑动的方法,分别是:layout().offsetLeftAndRight()与offsetTopAndBottom().LayoutParams.…