1.自定義View簡(jiǎn)介:
可以認(rèn)為繼承自View,系統(tǒng)沒有的效果耳贬,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
修改方法:重寫.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://松開
5.自定義屬性
自定義屬性就是用于配置
5.1在res下的values 下面attrs.xml 自定義自己屬性
5.2在布局中使用
聲明命名空間挤渔,然后再自定義中使用
5.3在自定義中獲取屬性