博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android自定义摇杆
阅读量:5873 次
发布时间:2019-06-19

本文共 3315 字,大约阅读时间需要 11 分钟。

转载请说明出处!

作者:
出处: |


部署

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

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

效果图

效果图

效果图

源码

喜欢就给个star,谢谢!

功能

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

使用

参数

参数 是否必须 描述
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);        }    });}
你可能感兴趣的文章
Linux下Makefile的automake生成全攻略
查看>>
顶级域名和二级域名共享cookie及相互删除cookie
查看>>
深入理解PHP Opcode缓存原理
查看>>
微服务部署:蓝绿部署、滚动部署、灰度发布
查看>>
探究操作系统的内存分配(malloc)对齐策略
查看>>
水仙花算法
查看>>
Java基础-IO流(13)
查看>>
递归法----整数划分问题
查看>>
CentOS 7 安装VirtualBox
查看>>
【转载】使用缓存的9个误区(上)
查看>>
6、宏定义与预处理、函数与函数库
查看>>
单例模式 代码以及祥解
查看>>
版本管理软件
查看>>
7、递归的二分查找
查看>>
发布过程5分钟内load飙升问题排查
查看>>
C程序编译链接问题
查看>>
hive(3)HiveQL数据定义
查看>>
PAT_A1003#Emergency
查看>>
Linux安全加固--系统相关
查看>>
UVA 12898 - And Or 与和或 (思路题)
查看>>