06 2017 档案
摘要:自定义View有三个构造方法,它们的作用是不同的。 第一个是new 一个对象的时候调用。 第二个是在XML文件声明的时候调用。 系统默认只会调用前两个构造函数,至于第三个构造函数的调用,通常是我们自己在构造函数中主动调用的。
阅读全文
摘要:getMeasuredWidth 为view的测量宽度。 getWidth为view的最终宽度。 (这里只讨论宽度,高度也是一样的道理) 那么它们之间有什么区别呢? 测量宽度是在view的measure过程中形成的,而最终宽度是view的layout过程中形成的。这是它们之间的区别,它们的大小在大多
阅读全文
摘要:很多初学者都会犯一个错误 ,就是在onCreate或者onStart里面去获取view的大小,然而这样获取到的宽高通常都是0,为什么呢?因为view的测量过程和activity的生命周期不是同步的,因此无法保证执行了onCreate、onStart、onResume的时候view已经测量完毕。如果还
阅读全文
摘要:我们都知道系统要确定View的大小,首先得先获得MeasureSpec,再通过MeasureSpec来决定View的大小。 MeasureSpec(32为int值)由两部分组成: SpecMode(高2位):测量模式。 SpecSize(低30位):某种测量模式下的规格大小。 SpecMode有3类
阅读全文
摘要:要理解View的测量,首先要了解MeasureSpec,系统在测量view的宽高时,要先确定MeasureSpec。 MeasureSpec(32为int值)由两部分组成: SpecMode(高2位):测量模式。 SpecSize(低30位):某种测量模式下的规格大小。 SpecMode有3类: U
阅读全文
摘要:View事件的分发机制由三个方法共同完成,这三个方法是: public boolean dispatchTouchEvent(MotionEvent ev); public boolean onInterceptTouchEvent(MotionEvent ev); public boolean o
阅读全文
摘要:1.Android DVM(Dalvik VM)的进程和Linux的进程, 应用程序的进程是同一个概念吗? DVM(Dalvik VM)指dalvik的虚拟机。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。而每一个DVM都是在Linux 中的一个进程,所
阅读全文