JoystickView

by zerokol

zerokol / JoystickView

An Android Joystick View

126 Stars 53 Forks Last release: Not found 34 Commits 0 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

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.