- 博客(13)
- 问答 (1)
- 收藏
- 关注
原创 Android View视图层次
参考:1.Android应用setContentView与LayoutInflater加载解析机制源码分析 之前一直不明白为什么android的view层次是这么个布局,现在终于有所了解了。。其实上图还有点问题,其实在DecorWindow中还有一个id为statusBarBackgroud和一个id为navigationBarBackground的View,分别表示手机的
2015-10-31 18:22:40 10810
原创 Android 补间动画原理
这段时间项目中用到了动画,所以趁热打铁,看看动画原理补间动画使用举例TranslateAnimation translateAnim = new TranslateAnimation(0, 100, 0, 100); translateAnim.setDuration(1000); translateAnim.setFillAfter(true);
2015-10-30 13:53:16 4707 2
原创 Android 自定义View
代码对《Android 手把手教您自定义ViewGroup》 中的例子做了优化,让它支持margin,同时增加了自身的绘制过程。 package lbb.mytest.demo;import android.content.Context;import android.graphics.Canvas;import android.graphics.Paint;
2015-10-28 19:07:14 695
原创 Android 定时操作方法AlarmManager,Timer,Handler
AlarmManagerTimer有一个明显的短板,它并不太适用于那些需要长期在后台运行的定时任务。我们都知道,为了能让电池更加耐用,每种手机都会有自己的休眠策略,Android 手机就会在长时间不操作的情况下自动让 CPU 进入到睡眠状态,这就有可能导致 Timer 中的定时任务无法正常运行。而 Alarm 机制则不存在这种情况,它具有唤醒 CPU 的功能,即可以保证每次需要执行定时任务的时
2015-10-27 17:33:23 3450
转载 android 进程详解
当一个应用的组件开始运行,并且这个应用没有其它的组件在运行,系统会为这个应用启动一个新的Linux进程,这个进程只有一个线程.默认情况下,一个应用的所有组件都运行在一个进程和线程(主线程)中.如果一个应用的组件开始运行,并且已经存在这个应用的线程了(因为这个应用的另一个组件已经运行了),于是这个组件就会在这个已有的进程中启动并且运行在同一线程中.然而,你完全可以安排不同的组件运行于不同的进程,并且
2015-10-26 20:13:45 612
原创 Android 进程,线程理解
进程首先参考前一篇文章finish方法这是结束当前activity的方法。主动结束一个Activity,这里需要注意finish是销毁掉一个Activity,会调用该activity的onDestroy方法,从任务栈中弹出当前的Activity,激活下一个Activity。如果当前activity是任务栈中的最后一个activity,那么退出应用,但是当前线程仍然还在,没有被结
2015-10-26 20:11:32 709
原创 Android HandlerThread和IntentService用法和源码解析
HandlerThread用法public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setC
2015-10-26 14:11:27 788
原创 Android 动画总结
首先申明只是对以下文章的归纳总结1. Android属性动画完全解析(上),初识属性动画的基本用法2. Android属性动画完全解析(中),ValueAnimator和ObjectAnimator的高级用法 3. Android属性动画完全解析(下),Interpolator和ViewPropertyAnimator的用法 属性动画作用为什么需要属性
2015-10-16 11:12:07 976
原创 Android View绘制流程
Measure()调用了onMeasure()方法,这里才是真正去测量并设置View大小的地方当然,一个界面的展示可能会涉及到很多次的measure,因为一个布局中一般都会包含多个子视图,每个视图都需要经历一次measure过程。ViewGroup中定义了一个measureChildren()方法来去测量子视图的大小.这里首先会去遍历当前布局下的所有子视图,然后逐个调用measur
2015-10-14 18:12:05 932
原创 Android 屏幕适配方案
参考Android多屏幕适配学习笔记 http://blog.csdn.net/a220315410/article/details/9139397Android官方提供的支持不同屏幕大小的全部方法 http://blog.csdn.net/guolin_blog/article/details/8830286Android屏幕适配方案 http://blog.csdn.net/l
2015-10-13 18:08:37 1202
原创 Android Scroll原理分析
Scroll滚动原理介绍Android里Scroller类是为了实现View平滑滚动的一个Helper类。通常在自定义的View时使用,在View中定义一个私有成员mScroller = new Scroller(context)。设置mScroller滚动的位置时startScroll,并不会导致View的滚动,通常是用mScroller记录/计算View滚动的位置,再重写Vie
2015-10-10 15:11:17 2049
原创 Android VelocityTracker与GestureDetector使用简介
VelocityTracker使用简介当你需要跟踪触摸屏事件的速度的时候,使用obtain()方法来获得VelocityTracker类的一个实例对象在onTouchEvent回调函数中,使用addMovement(MotionEvent)函数将当前的移动事件传递给VelocityTracker对象使用computeCurrentVelocity (int units)函数来计算当
2015-10-09 14:28:07 2182
原创 Android LayoutInflater原理分析
LayoutInflater使用LayoutInflater layoutInflater = LayoutInflater.from(context);LayoutInflater layoutInflater = mActivity.getLayoutInflater();LayoutInflater layoutInflater = (LayoutInflater) context.
2015-10-08 19:55:52 2416
空空如也
android studio总是出现使用快捷键的框框
2015-06-17
TA创建的收藏夹 TA关注的收藏夹
TA关注的人