1.自定義View簡(jiǎn)介:
可以認(rèn)為繼承自View,系統(tǒng)沒(méi)有的效果,extends View exdents ViewGroup
extends View:
2.onMeasure()
//獲取寬高模式
final int widthModes = MeasureSpec.getMode(widthMeasureSpec);
final int heightModes = MeasureSpec.getMode(heightMeasureSpec);
//獲取寬高的值
final int widthSize = MeasureSpec.getSize(widthMeasureSpec);
final int heightSize = MeasureSpec.getSize(heightMeasureSpec);
MeasureSpec.AT_MOST//在布局中指定了wrap_content
MeasureSpec.EXACTLY//在不居中指定確切的值 100dp match_content fill_content
MeasureSpec.UNSPECIFIED//盡可能的大,很少用到
ScrollView + ListView 顯示不全就是這個(gè)原因 測(cè)試量布局進(jìn)入MeasureSpec.UNSPECIFIED
修改方法:重寫(xiě).onMeasure() 進(jìn)入 MeasureSpec.AT_MOST 然后右移兩位

3.onDraw

4.onTouchEvent
責(zé)任鏈模式

這個(gè)方法響應(yīng)了觸摸屏幕發(fā)生的事件,當(dāng)我們需要和用戶交互的時(shí)候需要
MotionEvent.ACTION_DOWN://按下
MotionEvent.ACTION_MOVE://移動(dòng)
MotionEvent.ACTION_UP://松開(kāi)
5.自定義屬性
自定義屬性就是用于配置
5.1在res下的values 下面attrs.xml 自定義自己屬性

5.2在布局中使用
聲明命名空間,然后再自定義中使用


5.3在自定義中獲取屬性
