自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ShadowfaxGHH

You have no choice but to fight.

  • 博客(21)
  • 收藏
  • 关注

原创 Activity、Window、View、Surface[1]整体框架

主要涉及到 应用程序进程 和ActivityManagerService、WindowManagerService、SurfaceFlingerService三大服务。其中 应用程序进程 中的对象有Activity、Window、View、Surface。(其实还有非常多)Window对应于WindowManagerService中的WindowState对象,用于给WindowMan

2017-09-19 16:52:42 2983

原创 ListView[2] 源码解析

【参考链接】AndroidListView工作原理完全解析,带你从源码的角度彻底理解http://blog.csdn.net/guolin_blog/article/details/44996879 ListView当中使用了View复用机制其父类AbsListView中有个RecycleBin子类,其中有ActiveViews和ScrapViews两个成员变量,主要是ScrapV

2017-09-14 17:45:06 2234

原创 ListView[1] 显示效果

【参考链接】ListView的HeaderViewhttp://blog.csdn.net/caiwenfeng_for_23/article/details/38276403 item1、ListView的item的布局文件,最外层的View/ViewGroup,不管布局文件中是如何写的,最终layout_width会被自动置为match_parent,layout_heig

2017-09-14 16:51:32 2425

原创 ListView[0] 功能

【参考链接】 一个ListView的基本使用方式如下activity的布局文件    android:id="@+id/lv"    android:layout_width="match_parent"    android:layout_height="match_parent"    />item的布局文件xml version="1.0"en

2017-09-14 16:41:11 2278

原创 动画[6]PropertyAnimator LayoutTransition

【参考链接】LayoutTransition(布局容器动画)http://www.bubuko.com/infodetail-826585.html 从API 11开始,Android为ViewGroup提供了setLayoutTranslation()方法通过为ViewGroup指定LayoutTranslation,当ViewGroup调用addView()、removeVie

2017-09-12 11:37:51 2269

原创 动画[5]PropertyAnimator AnimatorSet

【参考链接】 还可以使用AnimatorSet将多个ValueAnimator/ObjectAnimator组合到一起可以通过如下方式来控制多个动画的协作方式.play(anim1).with(anim2)//同时执行                    .before(anim2)//先执行anim1,再执行anim2                    .a

2017-09-12 11:35:49 2166

原创 动画[4]PropertyAnimator ObjectAnimator

【参考链接】AndroidAnimation学习http://www.cnblogs.com/mengdd/p/3305698.html ObjectAnimator继承自ValueAnimator,所以ValueAnimator中的方法ObjectAnimator也都可以使用。ObjectAnimator内部其实是通过反射来调用方法来修改对象的属性,所以该类需要有此属性的get(

2017-09-12 11:33:58 2173

原创 动画[3]PropertyAnimator ValueAnimator

【参考链接】 ValueAnimator本身并不作用于任何对象,他可以对值做动画,然后我们可以监听动画过程,在动画过程中使用计算出的值来修改对象的属性 of()addUpdateListener()通过of()来指定估值器和起始值终止值(相当于setEvaluator()+setValues()),通过addUpdateListener()来监听动画过程。ValueAn

2017-09-12 11:30:11 2184

原创 View[7] Property

【参考链接】从setTranslationX谈属性动画和view动画的区别http://blog.csdn.net/yanzi1225627/article/details/47850471 从Android 3.0/API 11开始,Android为View增加了一些Property。通过改变这些Property也能够改变View的显示效果。这些Property包括alp

2017-09-12 11:11:06 2199

原创 动画[2]TweenAnimation 使用场景

【参考链接】 TweenAnimation常用于View的动画, ViewView提供了startAnimation()、cancelAnimation()用于开始、停止一个动画还有setAnimation(),它只是设置Animation的启动时间并附加到View上,需要自己重绘触发开始动画,startAnimation()内部就是这样 ViewGroup

2017-09-12 11:08:31 2130

原创 动画[1]TweenAnimation 设置

【参考链接】 TweenAnimation虽然提供了各种不同的动画,但是也具有一些相同的方法setDuration()持续时间 setFillAfter()动画结束时View是否停留在结束位置,true表示停在false表示不。 setRepeatCount()重复次数,如果-1则无限循环 setRepeatMode()设置为Animation.

2017-09-12 10:33:25 2160

原创 动画[0]TweenAnimation 各种TweenAnimation

【参考链接】  仅通过View.startAnimation()来演示一下如何书写各种TweenAnimation及其效果。下面可能涉及到绝对值、相对值的概念 xmljava绝对值0、100Animation.ABSOLUTE, 0相对值-100%

2017-09-12 10:27:36 2235

原创 触摸[7] GestureDetector

【参考链接】用户手势检测-GestureDetector使用详解http://blog.csdn.net/harvic880925/article/details/39520901 跟GestureDetector相关的有两个接口和一个外部类接口:OnGestureListener、OnDoubleTapListener内部类:SimpleOnGestureListener

2017-09-05 15:34:11 2137

原创 触摸[6] OverScroller

【参考链接】ScrollView、ListView剖析 -上下拉伸回弹阻尼效果http://www.jianshu.com/p/834e522d02dc 前面讲到了Scroller,这里就不得不讲下OverScroller。系统自带的ScrollView,只能在内容范围内滑动(在滑动到达边界时会有发光效果)但是实际上,ScrollView内部已经实现了

2017-09-05 15:29:00 2307

原创 触摸[5] Scroller

【参考链接】 前面只实现了内容随手指滑动而滑动,如何在手指离开屏幕以后还能继续平滑滑动一段距离呢?要实现平滑滑动,需要借助于Scroller类,它其实是通过起始位置、终止位置或初始速度,加上持续时间,计算出中间时刻的滑动位置,然后不断触发重绘来实现的。即通过不断的移动一个小的距离来实现整体的平滑滑动效果。提供了两个方法startScroll(),给它传入滑动的起始位置、终止位置

2017-09-05 15:18:09 2265

原创 触摸[4] VelocityTracker

【参考链接】 可以使用VelocityTracker类来获得手指滑动时的速度假设computeCurrentVelocity()中设置的时间间隔是1000ms,在1000ms内手指在水平方向从左向右滑动了100像素,那么计算出来的值就是100。注意速度的正负值跟屏幕坐标系方向保持一致。   @Override    public booleanonTouchEven

2017-09-05 15:11:59 2194

原创 触摸[3] 滑动

【参考链接】 跟前面的拖动不一样比如说有一个自定义ViewGroup,当手指在这个ViewGroup中移动的时候,能够滑动ViewGroup中的内容。这里为了跟后面的连贯,主要介绍使用scrollTo()/scrollBy()来实现的方式。 此外,Android还定义了系统所能够识别出的被认为是滑动的最小距离。当手指在屏幕上滑动的时候,如果两次滑动之间的距离小于这个常量,那

2017-09-05 15:09:37 2404

原创 触摸[2] 拖动

【参考链接】 以如下应用场景为例,在FrameLayout中有一个MyTextView,当手指在MyTextView上触摸时,MyTextView随着手指而移动。主要是事件处理结合《View的长宽及其在父ViewGroup中的位置,如何改变?》中的方法来使用 此外,如果该View设置了onClickListener,则在手指离开屏幕ACTION_UP以后还会触发onClickL

2017-09-05 15:03:38 2194

原创 触摸[1] MotionEvent

【参考链接】 当手指在屏幕上滑动的时候,可以通过MotionEvent对象获取到触摸点的坐标getX()、getY():是触摸点相对于当前View左上角点的距离getRawX()、getRawY():是触摸点相对于屏幕左上角点的距离。 注意这个值就是相对于当前View的,我们并不需要关心View和ViewGroup的情况。即使ViewGroup有scroll,借用《触摸

2017-09-05 15:02:06 2194

原创 触摸[0] 触摸事件传递机制

【参考链接】开发艺术探索AndroidView事件分发机制 源码解析 (上)http://blog.csdn.net/lmj623565791/article/details/38960443AndroidViewGroup事件分发机制http://blog.csdn.net/lmj623565791/article/details/39102591探究requestDisal

2017-09-05 14:57:52 2228

原创 View[6] inflate()、addView()removeView() 及 LayoutParams

【参考链接】 View是需要LayoutParams的。addView()ViewGroup提供了addView()方法用于添加子View如果传递了LayoutParams,则会将其覆盖子View已有的LayoutParams,如果没有传递LayoutParams,则会使用子View已有的LayoutParams,如果子View还没有设置La

2017-09-05 14:52:07 3184

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除