1纱兑, View是除了Android四大組件外化借,最常用的東西
2,什么是View:
View是android中所有控件的父類(lèi)蓖康,比如TextView,LinearLayout等等
其中LinearLayout繼承自控件組ViewGroup,當(dāng)然ViewGroup也是繼承自View
3倒信,View的位置
top:左上角縱坐標(biāo)
left:左上角橫坐標(biāo)
right:右下角橫坐標(biāo)
bottom:右下角縱坐標(biāo)
如下圖:
4泳梆,view的MotionEvent和TouchSlop
4.1MotionEvent:
ACTION_DOWN:手指接觸屏幕
ACTION_MOVE:手指在屏幕上滑動(dòng)
ACTION_UP:手指離開(kāi)屏幕。
4.2TouchSlop
處理滑動(dòng)時(shí)的過(guò)濾條件优妙,簡(jiǎn)單來(lái)說(shuō)就是描孟,手指在屏幕上的一次操作算不算滑動(dòng)。
系統(tǒng)默認(rèn)值:ViewConfiguration.get(context).getScaledTouchSlop()
5邪意,getX()getY()和getRawX()和getRawY()
前兩者相對(duì)于父控件View 后兩者相對(duì)于手機(jī)屏幕
6,VelocityTracker,GestureDetector,Scroller
6.1VelocityTracker:滑動(dòng)速度雾鬼,在view的ontouch事件中,查看速度
6.2 GestureDetector:手勢(shì)判斷嚷兔,比如長(zhǎng)按森渐,點(diǎn)擊冒晰,雙擊等,很少用耐齐,可以用 ontouch事件來(lái)代替
6.3Scroller:彈性滑動(dòng)對(duì)象蒋情,實(shí)現(xiàn)view的位置改變等
7,原始滑動(dòng)方式
7.1:ScrollerTo和Scroller By()
實(shí)現(xiàn)簡(jiǎn)單 但是只能滑動(dòng)view里面的子元素
areaone.scrollTo(-100,-100);
7.2:改變view參數(shù)
實(shí)現(xiàn)復(fù)雜棵癣,但是如果view有交互,這種方式比較好
ViewGroup.MarginLayoutParams marginLayoutParams = ((ViewGroup.MarginLayoutParams) textView.getLayoutParams());
marginLayoutParams.leftMargin =100;
textView.setLayoutParams(marginLayoutParams);
7.3:動(dòng)畫(huà)
適用于沒(méi)有交互的喜命,或者動(dòng)畫(huà)復(fù)雜的view的滑動(dòng)
ObjectAnimator.ofFloat(textView,"translationX",0,100).setDuration(1100).start(); ObjectAnimator.ofFloat(textView,"translationY",0,100).setDuration(1100).start();
8View的事件分發(fā):
8.1:Activity-window-View
8.2:view中是從父到子河劝,也就是從外到內(nèi),都不處理赎瞎,返回給最頂級(jí)
8.3:ViewGroup默認(rèn)不攔截任何事件,默認(rèn)返回false
8.4:分發(fā)方法:dispatchTouchEvent务甥,OnInterceptTouchEvent,OnTouchEvent
dispatchTouchEvent:分發(fā)
OnInterceptTouchEvent:攔截
OnTouchEvent:處理點(diǎn)擊事件