SnakeViewMaker
Introduction: 一个模仿即刻 App 用户头像拖动效果的工具类
Tags:
SnakeViewMaker 是一个模仿即刻 App 里用户头像拖动效果的工具类。

调用方法:
1.创建 SnakeViewMaker;
SnakeViewMaker snakeViewMaker = new SnakeViewMaker(MainActivity.this);
2.绑定
snakeViewMaker
.addTargetView(imageView) // 绑定目标 View
.attachToRootLayout((ViewGroup) findViewById(R.id.root)); // 绑定 Activity/Fragment 的根布局
3.其他相关 API
snakeViewMaker.detachSnake(); // 解除绑定
snakeViewMaker.updateSnakeImage(); // 当目标 View 的视图发生变化时,调用此方法用以更新 Snake 视图状态
snakeViewMaker.interceptTouchEvent(true); // Snake 拖动过程中是否需要屏蔽其他 onTouch 事件,默认屏蔽
snakeViewMaker.setVisibility(View.VISIBLE); // 控制可见性
snakeViewMaker.setClickable(true); // 控制可点击
snakeViewMaker.setEnabled(true); // 控制可触摸
注意事项
1.目前不支持 LinearLayout 根布局
2.加载本地图片可直接调用。网络图片需要在图片加载完成后才能调用,不然可能出现绑定不成功的情况
例如,用 glide 加载网络图片时,调用时机如下:
snakeViewMaker = new SnakeViewMaker(MainActivity.this);
Glide.with(this).load(url).asBitmap()
.into(new BitmapImageViewTarget(imageView) {
@Override
protected void setResource(Bitmap resource) {
super.setResource(resource);
snakeViewMaker.addTargetView(imageView)
.attachToRootLayout((ViewGroup) findViewById(R.id.root));
}
});
