• Stars
    star
    276
  • Rank 148,851 (Top 3 %)
  • Language
    Java
  • Created about 8 years ago
  • Updated almost 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Android 摇杆

转载请说明出处! 作者: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'
}

使用

XML

<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" />

Activity

初始化

RockerView rockerView = (RockerView) findViewById(R.id.rockerView);

设置回调模式

// 设置回调模式
rockerView.setCallBackMode(RockerView.CallBackMode.CALL_BACK_MODE_STATE_CHANGE);

监听摇动方向

// 监听摇动方向
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);
    }
});

监听摇动角度

// 监听摇动角度
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

喜欢就给个star,谢谢!

功能

  • 支持自适应大小
  • 支持2个方向、4个方向、8个方向的摇动监听
  • 支持摇动角度获取
  • 可选回调模式
  • 支持可摇动区域自定义
  • 支持摇杆自定义
  • 支持设置图片、色值、Share图形

使用

<kong.qingwei.rockerlibrary.RockerView
    android: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(CallBackMode mode)

参数

回调方式 描述
CALL_BACK_MODE_MOVE 有移动就立刻回调
CALL_BACK_MODE_STATE_CHANGE 状态有变化的时候回调

监听摇动角度

返回角度的取值范围:[0°,360°)

取值范围

setOnAngleChangeListener(OnAngleChangeListener listener)

监听摇动方向

setOnShakeListener(DirectionMode directionMode, OnShakeListener listener)

支持监听的方向

方向 描述
DIRECTION_2_HORIZONTAL 左右两个方向 横向 左右两个方向
DIRECTION_2_VERTICAL 上下两个方向 纵向 上下两个方向
DIRECTION_4_ROTATE_0 四个方向 四个方向
DIRECTION_4_ROTATE_45 四个方向 旋转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 中间

例子

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);
        }
    });
}

More Repositories

1

OpenCVForAndroid

目标检测&目标追踪&人脸检测&人脸识别
Java
2,048
star
2

AndroidSerialPort

Android串口通信示例
Java
719
star
3

AndroidWiFiManager

Android WiFi Manager
Java
126
star
4

NetworkMonitor

Android 全局网络变化监听
Kotlin
45
star
5

Android-CheckView

Android端手机验证码的生成
Java
38
star
6

WeChatHelper

WeChatHelper for androidx ,微信开放平台封装,包含微信分享、微信授权登录、微信支付
Kotlin
25
star
7

CombinedChartDemo

模拟自选股
Java
21
star
8

AndroidRadarScanView

Android Radar Scan 雷达扫描控件
Java
21
star
9

AndroidSoundManagerDemo

Android左右声道控制的示例程序
Java
17
star
10

AndroidBluetoothManager

Android Bluetooth Library
Java
17
star
11

PermissionsManager

Android 6.0 动态权限管理器
Kotlin
16
star
12

KqwOpenCVFeaturesDemo

图像边缘检测
Java
16
star
13

AndroidAssistiveTouch

模仿iphone AssistiveTouch
Java
13
star
14

AndroidUsbSerialDemo

Android USB 串口通信
Java
13
star
15

KqwOpenCVBlurDemo

使用OpenCV实现图片虚化处理
Java
9
star
16

CountDownTimerDemo

发送验证码倒计时
Java
9
star
17

QQHelper

QQHelper for androidx,QQ开放平台功能封装,包含QQ分享,QQ授权登录
Kotlin
9
star
18

AndroidVolumeManager

Android 音量控制
Java
7
star
19

KqwBluetoothDemo

Java
5
star
20

KqwBottomNavigation

安卓底部导航栏
Java
3
star
21

KqwHciDemo

灵云语音
Java
3
star
22

VolumeController

Java
2
star
23

RecyclerViewItemClickDemo

自定义高效支持点击监听的RecyclerView
Java
2
star
24

SelectorDemo

状态选择器示例Demo
Java
2
star
25

TuringSDK

Java
2
star
26

KqwHciTtsDemo

灵云语音
Java
1
star
27

KTools

常用工具梳理
Kotlin
1
star
28

ShapeView

Kotlin
1
star
29

FirstOpenCVDemo

OpenCV的部署
Java
1
star