只是做点笔记

来源:互联网 发布:高价回收域名的事例 编辑:程序博客网 时间:2024/05/01 22:40

View中setTranslation 与setScroll的区别。

setTranslation--改变整个控件的位置。(与setX,setY改变的对象相同)

setTransaction--以原点为参照点,不以当前点为参照点(如果初始化时位置(0.0),setTransactionY(100)之后当前位置为(0,100),但记录的原点坐标(0,0)未改变,所以再次setTransactionY(100)时以原点为参照点,所以为止不会再改变,相当于无效。)

setScroll--控件位置不变,改变控件里子控件的位置。


onInterceptTouchEvent的返回值决定event是否向下传递,即向child传递。

onTouchEvent的返回值决定event是否向上传递,即向parent传递。

Parent.onInterceptTouchEvent(true)--MotionEvent直接由自身处理,不向child传递,且Parent.onInterceptTouchEvent不再被调用.

Child.onTouchEvent(false)--无论Parent.onInterceptTouchEvent为什么,都不再传递MotionEvent给Child,Parent.onInterceptTouchEvent不再被调用。

Child.onTouchEvent(true)-->调用Parent.onInterceptTouchEvent决定是否继续向child传递。。


matrix.setScale(interpolatedTime, interpolatedTime);
matrix.preTranslate(-centerX, -centerY);

matrix.postTranslate(centerX, centerY);

preTranslate是指在setScale前,平移,postTranslate是指在setScale后平移

参数是平移的距离,而不是平移目的地的坐标!

如果缩放是以(0,0)为中心的,所以为了把界面的中心与(0,0)对齐,就要preTranslate(-centerX, -centerY),

setScale完成后,调用postTranslate(centerX, centerY),再把图片移回来,这样看到的动画效果就是activity的界面图片从中心不停的缩放了


0 0
原创粉丝点击