这里只做个汇总~.~独一无二 文章出处:http://blog.csdn.net/djy1992/article/details/9715047 Android自定义View研究--View中的原点坐标相关问题 我们自定义了View,但是有没想过一个问题,就是View中的(0,0)坐标,也就是原点坐标在哪??我们是不是有时候很困惑,接下来我们就来研究View中的原点坐标相关的问题. 一.new DuView时View的原点 我们通过从View中绘制一条从原点到右下角的线来看看这个View中的原点…
对于UI方面很多时候需要获取它的很多信息,具体情况见view的文档 View文档 http://developer.android.com/training/index.html 常用方法:获取view的宽高getWidth()getHeight() 获取当前view相对于[父元素]坐标系的原点.此点对于当前view而言,是它的左上角点在父元素坐标系中的坐标getX()getY() 获取当前view相对于[父元素]坐标系的几个值getLeft()getTop()getRight()getBott…
event.getX():表示的是触摸的点距离自身左边界的距离  event.getY():表示的是触摸的点距离自身上边界的距离 event.getRawX:表示的是触摸点距离屏幕左边界的距离 event.getRawY:表示的是触摸点距离屏幕上边界的距离  View.getWidth():表示的是当前控件的宽度,即getRight()-getLeft() View.getHeight():表示的是当前控件的高度,即getBottom()-getTop()  View.getTop():子Vie…
在Android中动画移动一个View的位置,采用Scroller类实现 今天说最近自己遇到的一个问题,就是要用动画效果来移动一个VIew的位置. 这个具体的情况是,需要做一个SlidingMenu的app,之前找了一个开源的,但不知道为什么,用起来app的运行效率很低,会有卡顿的现象.无奈只要自己写了. SlidingMenu核心的就是可以滑动拉开左侧和右侧的菜单.刚开始考虑用TranslationAnimation来做.不过TranslationAnimation并不是真的移动一个View的…
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> canvas { border: 2px dotted #ddd } </style> </head> <body> <canvas id="can…
转:http://blog.csdn.net/yanbober/article/details/50419117 1 背景 去年有很多人私信告诉我让说说自定义控件,其实通观网络上的很多博客都在讲各种自定义控件,但是大多数都是授之以鱼,却很少有较为系统性授之于渔的文章,同时由于自己也迟迟没有时间规划这一系列文章,最近想将这一系列文章重新提起来,所以就来先总结一下自定义控件的一个核心知识点——坐标系. 很多人可能不屑一顾Android的坐标系,但是如果你想彻底学会自定义控件,我想说了解Android…
闲聊 View,对我们来说在熟悉不过了,从接触 Android 开始,我们就一直在接触 View,界面当中到处都是 View,比如我们经常用到的 TextView,Button,LinearLayout 等等,但是我们真的了解 View 吗?尤其是 View 的坐标. mLeft, mRight, mY, mX, mTranslationY, mScoollY 相对于屏幕的坐标等等这些概念你真的清楚了吗?如果真的清楚了,那你没有必要读这篇博客,如果你还是有一些模糊,建议花上几分钟的时间读一下.…
这篇文章讲的方法全是再控件可以获取焦点的情况下执行的,如果在oncreat()里面执行,那么得到的都是0 1.getLocationInWindow 这个方法得到的是view相对于当前Activity的左上角坐标. 例子: 如果你的view长宽为162,view现在正好位于屏幕的左上角,那么得到的结果是(0,162),就是view的左上角的坐标. //得到这个view左上角的坐标(相对于当前Activity) int[] position01 = new int[2]; imageView.ge…
一.前言 在上一篇文章,介绍了View的坐标等基础知识,有了基础知识后,对下面内容的理解也将会容易很多.那么本文介绍的是View滑动的几种方式,这对于View来说,也是需要重要掌握的内容,因为用户无时无刻不在与View打交道,而主要途径有滑动,比如说:界面的切换等. 二.滑动方式 在Android中,要滑动一个View有多种方式,下面就来介绍几种常用的方式以及他们的区别. 1.使用scrollTo或scrollBy 在View的源码中,提供了专门滑动View的方法,分别是scrollTo和scr…
View and Window Architecture 视图和窗口架构 Views and windows present your application’s user interface and handle the interactions with that interface. UIKit and other system frameworks provide a number of views that you can use as-is with little or no mod…
本篇文章是自己自学自定义view前的准备,具体参考资料来自 Android LayoutInflater原理分析,带你一步步深入了解View(一) Android视图绘制流程完全解析,带你一步步深入了解View(二) Android视图状态及重绘流程分析,带你一步步深入了解View(三) Android自定义View的实现方法,带你一步步深入了解View(四) 这位大哥的系列博文,相当于自己看这些的一个思考吧. 一.首先学layoutInflater. 相信接触Android久一点的朋友对于La…
View的事件体系 本章介绍View的事件分发和滑动冲突问题的解决方案. 3.1 view的基础知识 View的位置参数.MotionEvent和TouchSlop对象.VelocityTracker.GestureDetector和Scroller对象. 3.1.1什么是view View是Android中所有控件的基类,View的本身可以是单个空间,也可以是多个控件组成的一组控件,即ViewGroup,ViewGroup继承自View,其内部可以有子View,这样就形成了View树的结构.…
本文结合一些周知的概念和源码片段,对View动画的工作原理进行挖掘和分析.以下不是对源码一丝不苟的分析过程,只是以搞清楚Animation的执行过程.如何被周期性调用为目标粗略分析下相关方法的执行细节,最终贯穿View动画实际发生的一切. View动画使用 Android提供了属性动画(property animation).帧动画(frame-by-frame animation)和View动画( tweened animation:补间动画),View动画的使用相对简单,但又不像真正意义上的…
btw:这篇博客的内容其实算是<Android开发艺术探索>的一篇读书笔记,在书本的知识上加了一点自己的理解,并用自己的话描述出来.<Android开发艺术探索>是一本不错的书,适合看完了入门书籍之后想要继续提高的读者. 亚马逊链接: https://www.amazon.cn/Android%E5%BC%80%E5%8F%91%E8%89%BA%E6%9C%AF%E6%8E%A2%E7%B4%A2-%E4%BB%BB%E7%8E%89%E5%88%9A/dp/B014HV1X3K…
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/17357967 不知不觉中,带你一步步深入了解View系列的文章已经写到第四篇了,回顾一下,我们一共学习了LayoutInflater的原理分析.视图的绘制流程.视图的状态及重绘等知识,算是把View中很多重要的知识点都涉及到了.如果你还没有看过我前面的几篇文章,建议先去阅读一下,多了解一些原理方面的东西. 之前我有承诺过,会在View这个话题上多写几篇博客,讲一讲View的工作原…
Android View各种尺寸位置相关的方法探究 本来想做一个View间的碰撞检测之类的. 动手做了才发现不是想象的那么简单. 首先,写好了碰撞检测的工具类如下: package com.mengdd.utils; import android.graphics.Rect; import android.graphics.RectF; import android.util.Log; import android.view.View; public class Collision2DUtils…
1 事件的传递顺序是 Activity -> Window -> 顶层View touch 事件产生后,最先由 activity 的 dispatchTouchEvent 处理 /** * Called to process touch screen events. You can override this to * intercept all touch screen events before they are dispatched to the * window. Be sure to…
1. 相对位置: getLeft() , getRight(), getTop(), getBottom() 在Android中可以把left相当于X轴值, top相当于Y轴值, 通过这两个值Android系统可以知道视图的绘制起点,在通过Wdith 和 Height 可以得到视图上下左右具体值,就可以在屏幕上绝对位置绘制视图.right 与 bottom计算如下: right = left + width; bottom = top + height; 视图左侧位置  view.getLeft…
自定义View包括很多种,上一次随笔中的那一种是完全继承自View,这次写的这个小Demo是继承自ViewGroup的,主要是将自定义View继承自ViewGroup的这个流程来梳理一下,这次的Demo中自定义了一个布局的效果,并且这个自定义布局中包含布局自己的属性,布局中的控件也包含只属于这个布局才具有的自定义属性(类似于layout_weight只存在于LinearLayout中,只有LinearLayout中的控件可以使用一样).话不多说,先看效果图: 其中红色的部分是自定义的ViewGr…
原文网址: 转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/17357967 不知不觉中,带你一步步深入了解View系列的文章已经写到第四篇了,回顾一下,我们一共学习了LayoutInflater的原理分析.视图的绘制流程.视图的状态及重绘等知识,算是把View中很多重要的知识点都涉及到了.如果你还没有看过我前面的几篇文章,建议先去阅读一下,多了解一些原理方面的东西. 之前我有承诺过,会在View这个话题上多写几篇博客,讲一讲Vi…
小米平板卸载软件的时候,会有一个粉碎的效果,看起来很拉风,GitHub上有一个开源控件可以实现这个效果,我们一起来看看.先来看看效果图: 看起来不错吧,那我们今天就来详细说说ExplosionField的使用和它内部的实现原理吧. 1.获得一个ExplosionField ExplosionField是GitHub上的一个开源项目,我们直接在GitHub上下载就可以了. 下载地址https://github.com/tyrantgit/ExplosionField 下载好之后我们直接将tyran…
1.共有三种动画,英文名字多种叫法如下 第一种动画:补间动画(Tween Animation/View Animation) 四个:RotateAnimation旋转. AlphaAnimation透明度. ScaleAnimation缩放. TranslateAnimation移动 第二种动画:帧动画(Frame Animation/Drawable Animation)类似多个图片的连续播放 第三种动画:属性动画(PropertyAnimation):使用Animator代替Animatio…
本节和<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…
一.坐标 ①.通过View获取坐标,通过调用getLeft().getRight()...方法获取坐标. 1.获取到的是相对于View父控件的位置 2.指的是左上角和右下角的x,y值 3.View还提供了setTranslate()和getX(),getY()方法 translate()指的是偏移量,偏移量指的是在当前基础上,移动的距离 getX()指的是getLeft()+trasnalte() ②.通过event事件点击获取到的坐标 getX():以自身View左上角点为坐标远点. getR…
Animation TypeEvaluator View的animate方法 ValueAnimator ObjectAnimator AnimatorSet 使用xml来创建动画 animation objectAnimator set Animator set 自己定义ObjectAnimator属性 propertyValuesHolder Keyframe Interpolator 贝塞尔曲线 PathInterpolator 加减速引子 Android的动画模式:tween anima…
前段开始学习View的工作原理,前两篇博客的草稿都已经写好了,本想一鼓作气写完所有的相关文章,然后经历了一段连续加班,结果今天准备继续写文章时,把之前写好的东西都忘记了,又重新梳理了一遍,所以说那怕就是已经掌握的知识,也要记得温故而知新. 言归正传,之前我们讨论过了measure过程,measure过程完成之后,我们就可以通过 getMeasuredWidth或getMeasuredHeight来得到View的宽高尺寸了.而知道了宽高尺寸之后,剩下的就是布局(layout)过程了.说直白点,怎么…
原文链接 : Introduction to Custom View Controller Transitions and Animations 原文作者 : joyce echessa 译文出自 : 开发技术前线 www.devtf.cn 译者 : kmyhy 观察 iOS 自带的 App,你会看到当你从一个视图导航到还有一个视图时总是会显示各种各样的转换动画,以"主-从"视图为例(相似的程序有Messages App或者系统设置程序),一个轻扫动作能够让详情视图呈如今主视图之上,在…
原创 2015年05月12日 13:15:29 标签: Android / Scroll / Scale / Translation / Rotation 24733 Android开发中,经常会接触到自定义View,而与View绘制相关的一组组方法很容易让人混淆-- 现在个人简单整理,希望能够让大家有个清晰的认识 1.移动View内容的相关变量和方法 (注意:是移动View所包含的内容,而非View本身) View相关成员变量 [java] view plain copy   //View的内…
今天头条的面试官问起了实现View滑动的方式,其实前几天刚刚看过,但还是没能答上来,这里再来总结一遍. 1.使用scrollTo/scrollBy 为了实现View滑动,Android专门提供了这两个方法让我们使用.这两个函数的区别是scrollBy提供的是基于当前位置的相对滑动,而scrollTo提供的是基于起始位置的绝对滑动. 需要注意的是实际的滑动方向与我们想当然的方向不同,这个问题与View的内部变量mScrollX和mScrollY的含义有关,scrollTo函数与scrollBy函数…
当屏幕可以装下内容的时候,他们的值相等,只有当view超出屏幕后,才能看出他们的区别:getMeasuredHeight()是实际View的大小,与屏幕无关,而getHeight的大小此时则是屏幕的大小.当超出屏幕后,getMeasuredHeight()等于getHeight()加上屏幕之外没有显示的大小.getHeight()是布局以后的屏幕高度动态改变布局大小的方法:LayoutParams lp = 控件ID.getLayoutParams();lp.height = 320;(单位是像…