关闭
尊敬的极客用户,您好!
感谢您一直关注并使用极客头条,为了给您带来良好的体验效果及性能,极客头条将于2018年04月27日关闭,您可以在 我的博客 中继续使用发布文章功能并看到已经发布成功的文章。
返回 登录
0

自定义手柄方向键

RockerView

这是一个游戏手柄方向键的自定义View。

DirectionView DirectionView

Github:https://github.com/caibou/RockerView

开始

Gradle 3.0及以上

implementation 'me.caibou.android:rockerview:1.0.0'

Gradle 3.0以下

compile 'me.caibou.android:rockerview:1.0.0'

使用

JoystickView

<me.caibou.rockerview.JoystickView
        android:id="@+id/joystick_control"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"

        app:edge_radius="65dp"
        app:stick_color="#f52504"
        />

属性

  • edge_radius:外边框的半径
  • stick_color:摇杆的颜色

设置角度改变回调

joystickView.setAngleUpdateListener(new JoystickView.OnAngleUpdateListener() {
    @Override
    public void onAngleUpdate(double angle, int action) {
        if (action == JoystickView.ACTION_RELEASE){
        tvAngle.setText("");
        } else {
            tvAngle.setText(getString(R.string.angle, angle));
        }
    }
});

DirectionView

<me.caibou.rockerview.DirectionView
        android:id="@+id/direct_control"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"

    app:edge_radius="65dp"
        app:button_outside_circle_radius="60dp"
        app:button_side_width="40dp"
    app:indicator_color="#f52504"
    />

属性

  • edge_radius:外边框的半径
  • button_outside_circle_radius:方向按钮外切圆的半径
  • button_side_width:方向按钮的边长
  • indicator_color:手指按下之后指示器的颜色

设置方向改变回调

directionView.setDirectionChangeListener(new DirectionView.DirectionChangeListener() {
    @Override
    public void onDirectChange(DirectionView.Direction direction) {
        tvAngle.setText(direction.toString());
    }
});

以上,欢迎star

评论