美文网首页
Android自定义摇杆

Android自定义摇杆

作者: kongqw | 来源:发表于2016-11-07 18:10 被阅读579次

    转载请说明出处!
    作者:kqw攻城狮
    出处:个人站 | CSDN


    效果图

    效果图 效果图

    源码

    KqwRockerDemo

    喜欢就给个star,谢谢!

    功能

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

    使用

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

    相关文章

      网友评论

          本文标题:Android自定义摇杆

          本文链接:https://www.haomeiwen.com/subject/tivouttx.html