View动画的三种方式:
1. 使用scrollTo/scrollBy
该方式,只能移动控件的内容,不能移动控件,意味着,超出控件内容跟将显示不出来。示意图入下:
2. 使用动画
-
XML动画
-
属性动画
3. 改变布局
弹性动画
1.使用Scroller
2.使用动画
3.使用延时策略
private static final int MESSAGE_SCROLL_TO = 1;
private static final int FRAME_COUNT = 30;
private static final int DELAYED_TIME = 33;
private int mCount = 0;
@SuppressLint("HandlerLeak")
private Handler mHandler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case MESSAGE_SCROLL_TO: {
mCount++;
if (mCount <= FRAME_COUNT) {
float fraction = mCount / (float) FRAME_COUNT;
int scrollX = (int) (fraction * 100);
mButton1.scrollTo(scrollX, 0);
mHandler.sendEmptyMessageDelayed(MESSAGE_SCROLL_TO, DELAYED_TIME);
}
break;
}
default:
break;
}
};
};
事件的分发机制
事件分发机制共有三个方法控制
以下伪代码可表示事件分发机制:
滑动冲突处理
处理方案有两种,内部拦截、外部拦截。
网友评论