# AndroidRocker
**Repository Path**: ouyangpengdev/AndroidRocker
## Basic Information
- **Project Name**: AndroidRocker
- **Description**: Android 摇杆
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 3
- **Created**: 2021-03-23
- **Last Updated**: 2023-02-07
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
---
转载请说明出处!
作者:[kqw攻城狮](http://kongqw.github.io/about/index.html)
出处:[个人站](http://kongqw.com/2016/09/01/2016-09-01-Android%E8%87%AA%E5%AE%9A%E4%B9%89%E6%91%87%E6%9D%86/) | [CSDN](http://blog.csdn.net/q4878802/article/details/52402529)
---
[](https://jitpack.io/#kongqw/AndroidRocker)
# 部署
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:
``` gradle
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
```
Step 2. Add the dependency
``` gradle
dependencies {
compile 'com.github.kongqw:AndroidRocker:1.0.1'
}
```
# 使用
## XML
``` xml
```
## Activity
### 初始化
``` java
RockerView rockerView = (RockerView) findViewById(R.id.rockerView);
```
### 设置回调模式
``` java
// 设置回调模式
rockerView.setCallBackMode(RockerView.CallBackMode.CALL_BACK_MODE_STATE_CHANGE);
```
### 监听摇动方向
``` java
// 监听摇动方向
rockerView.setOnShakeListener(RockerView.DirectionMode.DIRECTION_8, new RockerView.OnShakeListener() {
@Override
public void onStart() {
mLogLeft.setText(null);
}
@Override
public void direction(RockerView.Direction direction) {
mLogLeft.setText("摇动方向 : " + getDirection(direction));
}
@Override
public void onFinish() {
mLogLeft.setText(null);
}
});
```
### 监听摇动角度
``` java
// 监听摇动角度
rockerViewRight.setOnAngleChangeListener(new RockerView.OnAngleChangeListener() {
@Override
public void onStart() {
mLogRight.setText(null);
}
@Override
public void angle(double angle) {
mLogRight.setText("摇动角度 : " + angle);
}
@Override
public void onFinish() {
mLogRight.setText(null);
}
});
```
-------------------------
# 效果图


# 源码
[KqwRockerDemo](https://github.com/kongqw/KqwRockerDemo)
喜欢就给个`star`,谢谢!
# 功能
* 支持自适应大小
* 支持2个方向、4个方向、8个方向的摇动监听
* 支持摇动角度获取
* 可选回调模式
* 支持可摇动区域自定义
* 支持摇杆自定义
* 支持设置图片、色值、Share图形
# 使用
``` java
```
# 参数
| 参数 | 是否必须 | 描述 |
|------------------|------|----------------|
| areaBackground | 可选 | 可摇动区域的背景 |
| rockerBackground | 可选 | 摇杆的背景 |
| rockerRadius | 可选 | 摇杆半径 |
# 设置回调方式
``` java
setCallBackMode(CallBackMode mode)
```
参数
| 回调方式 | 描述 |
|-----------------------------|-------------------|
| CALL_BACK_MODE_MOVE | 有移动就立刻回调 |
| CALL_BACK_MODE_STATE_CHANGE | 状态有变化的时候回调 |
# 监听摇动角度
返回角度的取值范围:[0°,360°)

``` java
setOnAngleChangeListener(OnAngleChangeListener listener)
```
# 监听摇动方向
``` java
setOnShakeListener(DirectionMode directionMode, OnShakeListener listener)
```
支持监听的方向
| 方向 | 图 | 描述 |
|------------------------|------------------|------|
| 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 | 中间 |
# 例子
``` java
RockerView rockerViewLeft = (RockerView) findViewById(R.id.rockerView_left);
if (rockerViewLeft != null) {
rockerViewLeft.setCallBackMode(RockerView.CallBackMode.CALL_BACK_MODE_STATE_CHANGE);
rockerViewLeft.setOnShakeListener(RockerView.DirectionMode.DIRECTION_8, new RockerView.OnShakeListener() {
@Override
public void onStart() {
mLogLeft.setText(null);
}
@Override
public void direction(RockerView.Direction direction) {
mLogLeft.setText("摇动方向 : " + getDirection(direction));
}
@Override
public void onFinish() {
mLogLeft.setText(null);
}
});
}
RockerView rockerViewRight = (RockerView) findViewById(R.id.rockerView_right);
if (rockerViewRight != null) {
rockerViewRight.setOnAngleChangeListener(new RockerView.OnAngleChangeListener() {
@Override
public void onStart() {
mLogRight.setText(null);
}
@Override
public void angle(double angle) {
mLogRight.setText("摇动角度 : " + angle);
}
@Override
public void onFinish() {
mLogRight.setText(null);
}
});
}
```