300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > android弧形左右滑动空间 ArcSlidingHelper 几行代码实现Android弧形滑动

android弧形左右滑动空间 ArcSlidingHelper 几行代码实现Android弧形滑动

时间:2019-05-17 18:35:57

相关推荐

android弧形左右滑动空间 ArcSlidingHelper 几行代码实现Android弧形滑动

几行代码实现Android弧形滑动

使用方式:

添加依赖:

implementation 'com.wuyr:arcslidinghelper:1.0.0'

APIs:

MethodDescription

create(View targetView, OnSlidingListener listener)创建实例

targetView: 圆弧滑动事件以此View的中心点为圆心

OnSlidingListener: 旋转事件回调

enableInertialSliding(boolean enable)设置是否开启惯性滑动

setSelfSliding(boolean isSelfSliding)设置是否自身滑动 (即接受触摸事件的View和旋转的View是否同一个对象)

setScrollAvailabilityRatio(float ratio)设置惯性滑动的利用率 (范围:0~1, 数值越大,旋转越激进)

setOnSlideFinishListener(OnSlideFinishListener listener)设置滚动完毕监听器

handleMovement(MotionEvent event)处理触摸事件

updateMovement(MotionEvent event)更新当前手指触摸的坐标,在ViewGroup的onInterceptTouchEvent中使用

updatePivotX(int pivotX)更新圆心x坐标

updatePivotY(int pivotY)更新圆心y坐标

abortAnimation()停止本次滚动

release()释放资源

简单使用示例:

private ArcSlidingHelper mArcSlidingHelper;

private View mView;

@Override

protected void onCreate(@Nullable Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.act_main_view);

mView = findViewById(R.id.view);

mView.post(() -> {

//创建对象

mArcSlidingHelper = ArcSlidingHelper.create(mView,

angle -> mView.setRotation(mView.getRotation() + angle));

//开启惯性滚动

mArcSlidingHelper.enableInertialSliding(true);

});

getWindow().getDecorView().setOnTouchListener((v, event) -> {

//处理滑动事件

mArcSlidingHelper.handleMovement(event);

return true;

});

}

@Override

protected void onDestroy() {

super.onDestroy();

//释放资源

mArcSlidingHelper.release();

}

效果:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。