转载请说明出处! 作者:kqw攻城狮 出处:个人站 | CSDN
To get a Git project into your build:
Step 1. Add the JitPack repository to your build file
Add it in your root build.gradle at the end of repositories:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}Step 2. Add the dependency
dependencies {
compile 'com.github.kongqw:AndroidRocker:1.0.1'
}<com.kongqw.rockerlibrary.view.RockerView
android:id="@+id/rockerView"android:layout_width="200dp"android:layout_height="200dp"kongqw:areaBackground="@drawable/default_area_bg"kongqw:rockerBackground="@drawable/default_rocker_bg"kongqw:rockerRadius="30dp" />RockerViewrockerView = (RockerView) findViewById(R.id.rockerView);// 设置回调模式rockerView.setCallBackMode(RockerView.CallBackMode.CALL_BACK_MODE_STATE_CHANGE);// 监听摇动方向rockerView.setOnShakeListener(RockerView.DirectionMode.DIRECTION_8, newRockerView.OnShakeListener() {
@OverridepublicvoidonStart() {
mLogLeft.setText(null);
}
@Overridepublicvoiddirection(RockerView.Directiondirection) {
mLogLeft.setText("摇动方向 : " + getDirection(direction));
}
@OverridepublicvoidonFinish() {
mLogLeft.setText(null);
}
});// 监听摇动角度rockerViewRight.setOnAngleChangeListener(newRockerView.OnAngleChangeListener() {
@OverridepublicvoidonStart() {
mLogRight.setText(null);
}
@Overridepublicvoidangle(doubleangle) {
mLogRight.setText("摇动角度 : " + angle);
}
@OverridepublicvoidonFinish() {
mLogRight.setText(null);
}
});喜欢就给个star,谢谢!
- 支持自适应大小
- 支持2个方向、4个方向、8个方向的摇动监听
- 支持摇动角度获取
- 可选回调模式
- 支持可摇动区域自定义
- 支持摇杆自定义
- 支持设置图片、色值、Share图形
<kong.qingwei.rockerlibrary.RockerViewandroid:id="@+id/rockerView_center"android:layout_width="100dp"android:layout_height="100dp"android:layout_centerHorizontal="true"kongqw:areaBackground="#FF333333"kongqw:rockerBackground="#FF987654"kongqw:rockerRadius="15dp" />| 参数 | 是否必须 | 描述 |
|---|---|---|
| areaBackground | 可选 | 可摇动区域的背景 |
| rockerBackground | 可选 | 摇杆的背景 |
| rockerRadius | 可选 | 摇杆半径 |
setCallBackMode(CallBackModemode)参数
| 回调方式 | 描述 |
|---|---|
| CALL_BACK_MODE_MOVE | 有移动就立刻回调 |
| CALL_BACK_MODE_STATE_CHANGE | 状态有变化的时候回调 |
返回角度的取值范围:[0°,360°)
setOnAngleChangeListener(OnAngleChangeListenerlistener)setOnShakeListener(DirectionModedirectionMode, OnShakeListenerlistener)支持监听的方向
| 方向 | 图 | 描述 |
|---|---|---|
| DIRECTION_2_HORIZONTAL | 横向 左右两个方向 | |
| DIRECTION_2_VERTICAL | 纵向 上下两个方向 | |
| DIRECTION_4_ROTATE_0 | 四个方向 | |
| DIRECTION_4_ROTATE_45 | 四个方向 旋转45° | |
| DIRECTION_8 | 八个方向 |
方向描述
| 方向 | 描述 |
|---|---|
| DIRECTION_LEFT | 左 |
| DIRECTION_RIGHT | 右 |
| DIRECTION_UP | 上 |
| DIRECTION_DOWN | 下 |
| DIRECTION_UP_LEFT | 左上 |
| DIRECTION_UP_RIGHT | 右上 |
| DIRECTION_DOWN_LEFT | 左下 |
| DIRECTION_DOWN_RIGHT | 右下 |
| DIRECTION_CENTER | 中间 |
RockerViewrockerViewLeft = (RockerView) findViewById(R.id.rockerView_left);
if (rockerViewLeft != null) {
rockerViewLeft.setCallBackMode(RockerView.CallBackMode.CALL_BACK_MODE_STATE_CHANGE);
rockerViewLeft.setOnShakeListener(RockerView.DirectionMode.DIRECTION_8, newRockerView.OnShakeListener() {
@OverridepublicvoidonStart() {
mLogLeft.setText(null);
}
@Overridepublicvoiddirection(RockerView.Directiondirection) {
mLogLeft.setText("摇动方向 : " + getDirection(direction));
}
@OverridepublicvoidonFinish() {
mLogLeft.setText(null);
}
});
}
RockerViewrockerViewRight = (RockerView) findViewById(R.id.rockerView_right);
if (rockerViewRight != null) {
rockerViewRight.setOnAngleChangeListener(newRockerView.OnAngleChangeListener() {
@OverridepublicvoidonStart() {
mLogRight.setText(null);
}
@Overridepublicvoidangle(doubleangle) {
mLogRight.setText("摇动角度 : " + angle);
}
@OverridepublicvoidonFinish() {
mLogRight.setText(null);
}
});
}