Android自定义view摇杆,Android自定义摇杆

转载请说明出处!

作者:kqw攻城狮

出处:个人站 | CSDN

效果图

e27c647b0143

效果图

e27c647b0143

效果图

源码

喜欢就给个star,谢谢!

功能

支持自适应大小

支持2个方向、4个方向、8个方向的摇动监听

支持摇动角度获取

可选回调模式

支持可摇动区域自定义

支持摇杆自定义

支持设置图片、色值、Shape图形

使用

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°)

e27c647b0143

取值范围

setOnAngleChangeListener(OnAngleChangeListener listener)

监听摇动方向

setOnShakeListener(DirectionMode directionMode, OnShakeListener listener)

支持监听的方向

方向

描述

DIRECTION_2_HORIZONTAL

e27c647b0143

左右两个方向

横向 左右两个方向

DIRECTION_2_VERTICAL

e27c647b0143

上下两个方向

纵向 上下两个方向

DIRECTION_4_ROTATE_0

e27c647b0143

四个方向

四个方向

DIRECTION_4_ROTATE_45

e27c647b0143

四个方向 旋转45°

四个方向 旋转45°

DIRECTION_8

e27c647b0143

八个方向

八个方向

方向描述

方向

描述

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

}

});

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值