#自定义控件—Scroller平缓滑动工具类
###系统提供的,用于处理平滑动工具类
###可根据当前时间节点获取这个节点要滚动到点的坐标
1.得到对象
private Scroller scroller = new Scroller(getContext());
2.设置滚动
scroller.startScroll(int startX, int startY, int dx, int dy, int duration)
参数详解:
startX 开始滚动的点X坐标
startY 开始滚动的点Y坐标
dx X方向要滚动的距离
dy y方向要滚动的距离
long: 滚动所需时间
3.请求控件重新绘制
invalidate();
4.当控件的界面重绘的时候会调用
@Override
public void computeScroll() {
//判断滚动有没有完成,返回true代表这个滚动还没有完成
if(scroller.computeScrollOffset()){
//根据当前时间节点获取这个节点要滚动到点的坐标
int currX = scroller.getCurrX();
scrollTo(currX, 0);
invalidate();
}
}
###屏幕滑动的常用两个方法
//相对于0,0移动的距离
scrollTo(int x, int y)
//相对于当前位置移动的距离
scrollBy(int x, int y)
//屏幕左上点的当前坐标
getScrollX()
###系统提供的,用于处理平滑动工具类
###可根据当前时间节点获取这个节点要滚动到点的坐标
1.得到对象
private Scroller scroller = new Scroller(getContext());
2.设置滚动
scroller.startScroll(int startX, int startY, int dx, int dy, int duration)
参数详解:
startX 开始滚动的点X坐标
startY 开始滚动的点Y坐标
dx X方向要滚动的距离
dy y方向要滚动的距离
long: 滚动所需时间
3.请求控件重新绘制
invalidate();
4.当控件的界面重绘的时候会调用
@Override
public void computeScroll() {
//判断滚动有没有完成,返回true代表这个滚动还没有完成
if(scroller.computeScrollOffset()){
//根据当前时间节点获取这个节点要滚动到点的坐标
int currX = scroller.getCurrX();
scrollTo(currX, 0);
invalidate();
}
}
###屏幕滑动的常用两个方法
//相对于0,0移动的距离
scrollTo(int x, int y)
//相对于当前位置移动的距离
scrollBy(int x, int y)
//屏幕左上点的当前坐标
getScrollX()