Need help with JoystickView?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

zerokol
137 Stars 53 Forks 34 Commits 0 Opened issues

Description

An Android Joystick View

Services available

!
?

Need anything else?

Contributors list

# 286,716
Java
Android
mathema...
2 commits
# 667,773
Java
1 commit

zerokol.com

Para modo de uso em Portugês: JoystickView - Uma view customizada que simula um Joystick no Android.

For more info, go to: JoystickView - A custom Android View to simulates a Joystickm Joystick no Android

JoystickView - Android

Android JoystickView is a Custom View that simulates a Joystick for interactive applications for Android, as simple aim is allows access values ​​of angle and power of the virtual Joystick movement.

Usage

Quick Usage

Step 1 - Download or Clone the library (using Git, or a zip archive to unzip)

Step 2 - Open your project in Android Studio

Step 3 - Go to File > New > Import Module

Step 4 - Find and select JoystickView in your project tree

Step 5 - Right-click your app in project view and select "Open Module Settings"

Step 6 - Click the "Dependencies" tab and then the '+' button (Module Dependency)

Step 7 - Select "joystickView"

That is all!

SHOW ME THE CODE

At this point, you just need to include the View in any layout to start to use the JoystickView, for example:

<com.zerokol.views.joystickview.joystickview android:id="@+id/joystickView" android:layout_width="wrap_content" android:layout_height="wrap_content"></com.zerokol.views.joystickview.joystickview>

</android.support.constraint.constraintlayout>

But certainly you will want to manipulate and extract values from JoystickView, for that you can use this source for a complete reference:

activitymain.xml ```xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/MainLinerLayout" android:layoutwidth="fillparent" android:layoutheight="fill_parent" android:orientation="vertical">


<textview android:id="@+id/rightsTextView" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center" android:text="@string/rights_lab" android:textappearance="?android:attr/textAppearanceSmall"></textview>

<tablelayout android:id="@+id/tableLayout1" android:layout_width="fill_parent" android:layout_height="wrap_content">

    <tablerow android:id="@+id/tableRow1" android:layout_width="wrap_content" android:layout_height="wrap_content">

        <textview android:id="@+id/angletextViewLab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/angle_lab" android:textappearance="?android:attr/textAppearanceLarge"></textview>

        <textview android:id="@+id/angleTextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/none" android:textappearance="?android:attr/textAppearanceMedium"></textview>
    </tablerow>

    <tablerow android:id="@+id/tableRow2" android:layout_width="wrap_content" android:layout_height="wrap_content">

        <textview android:id="@+id/powerTextViewLab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/power_lab" android:textappearance="?android:attr/textAppearanceLarge"></textview>

        <textview android:id="@+id/powerTextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/none" android:textappearance="?android:attr/textAppearanceMedium"></textview>
    </tablerow>

    <tablerow android:id="@+id/tableRow3" android:layout_width="wrap_content" android:layout_height="wrap_content">

        <textview android:id="@+id/directionTextViewLab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/direction_lab" android:textappearance="?android:attr/textAppearanceLarge"></textview>

        <textview android:id="@+id/directionTextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/none" android:textappearance="?android:attr/textAppearanceMedium"></textview>
    </tablerow>
</tablelayout>

```

MainActivity.java ```java package com.zerokol.myapplication;

import com.zerokol.views.joystickView.JoystickView; import com.zerokol.views.joystickView.JoystickView.OnJoystickMoveListener; import android.app.Activity; import android.os.Bundle; import android.widget.TextView;

public class MainActivity extends Activity { private TextView angleTextView; private TextView powerTextView; private TextView directionTextView; // Importing also other views private JoystickView joystick;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

angleTextView = (TextView) findViewById(R.id.angleTextView);
powerTextView = (TextView) findViewById(R.id.powerTextView);
directionTextView = (TextView) findViewById(R.id.directionTextView);
//Referencing also other views
joystick = (JoystickView) findViewById(R.id.joystickView);

//Event listener that always returns the variation of the angle in degrees, motion power in percentage and direction of movement
joystick.setOnJoystickMoveListener(new OnJoystickMoveListener() {

    @Override
    public void onValueChanged(int angle, int power, int direction) {
        // TODO Auto-generated method stub
        angleTextView.setText(" " + String.valueOf(angle) + "°");
        powerTextView.setText(" " + String.valueOf(power) + "%");
        switch (direction) {
            case JoystickView.FRONT:
                directionTextView.setText(R.string.front_lab);
                break;
            case JoystickView.FRONT_RIGHT:
                directionTextView.setText(R.string.front_right_lab);
                break;
            case JoystickView.RIGHT:
                directionTextView.setText(R.string.right_lab);
                break;
            case JoystickView.RIGHT_BOTTOM:
                directionTextView.setText(R.string.right_bottom_lab);
                break;
            case JoystickView.BOTTOM:
                directionTextView.setText(R.string.bottom_lab);
                break;
            case JoystickView.BOTTOM_LEFT:
                directionTextView.setText(R.string.bottom_left_lab);
                break;
            case JoystickView.LEFT:
                directionTextView.setText(R.string.left_lab);
                break;
            case JoystickView.LEFT_FRONT:
                directionTextView.setText(R.string.left_front_lab);
                break;
            default:
                directionTextView.setText(R.string.center_lab);
        }
    }
}, JoystickView.DEFAULT_LOOP_INTERVAL);

}

} ```

strings.xml ```xml <?xml version="1.0" encoding="utf-8"?>

My Application
Angle:
Power:
Direc:

Front
Front-Right
Right
Right-Bottom
Bottom
Left-Bottom
Left
Front-Left
Center
http://zerokol.com

```

This is an implementation of a custom android view that works like a Joystick, this view controls two variables, angle motion and power motion of the screen touch.

Creative Commons

JoystickView by AJ Alves is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License. Based on a work at github.com and page zerokol.com/2012/03/joystickview-uma-view-customizada-que.html. Permissions beyond the scope of this license may be available at http://github.com/zerokol.

Special Thanks to:

@mksmbrtsh (https://github.com/mksmbrtsh)

@Mayco-Anderson (https://github.com/Mayco-Anderson)

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.