2015-10-31 04:57:44 +00:00
|
|
|
# JoyStick
|
2024-01-24 15:39:09 +00:00
|
|
|
Android Library for JoyStick View.
|
|
|
|
|
2017-01-25 07:18:48 +00:00
|
|
|
Customizable, small and lightweight.
|
2015-10-31 04:57:44 +00:00
|
|
|
|
2024-01-24 15:39:09 +00:00
|
|
|
## Sample App
|
|
|
|
![Sample app](/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png "Sample App image")
|
2015-10-31 04:57:44 +00:00
|
|
|
|
2024-01-24 15:39:09 +00:00
|
|
|
![Sample app image 1](/images/Screenshot_2015-10-30-21-43-47.png "Sample app image 1")
|
2015-11-01 22:38:52 +00:00
|
|
|
|
2024-01-24 15:39:09 +00:00
|
|
|
![Sample app image 2](/images/Screenshot_2015-11-02-18-05-49.png "Sample app image 2")
|
2015-10-31 04:57:44 +00:00
|
|
|
|
2024-01-24 15:39:09 +00:00
|
|
|
## Usage
|
|
|
|
Gradle Import: This github repository
|
2017-05-03 05:43:56 +00:00
|
|
|
|
2015-10-31 04:57:44 +00:00
|
|
|
```groovy
|
|
|
|
|
|
|
|
repositories {
|
2017-01-22 06:13:43 +00:00
|
|
|
maven {
|
2024-01-24 15:39:09 +00:00
|
|
|
url uri("https://maven.pkg.github.com/etlegacy/JoyStick")
|
2017-01-22 06:13:43 +00:00
|
|
|
}
|
2015-10-31 04:57:44 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
dependencies {
|
2024-01-24 15:39:09 +00:00
|
|
|
compile 'com.etlegacy.android:JoyStick:1.2.0'
|
2015-10-31 04:57:44 +00:00
|
|
|
}
|
|
|
|
```
|
2017-05-03 05:43:56 +00:00
|
|
|
|
2024-01-24 15:39:09 +00:00
|
|
|
## v1.1.0 BREAKING CHANGE!
|
2017-05-03 05:43:56 +00:00
|
|
|
|
2024-01-24 15:39:09 +00:00
|
|
|
* Made changes to JoyStickListener
|
|
|
|
* Added Direction to onMove
|
|
|
|
* Added Event calls for onTap and onDoubleTap
|
2017-01-22 22:51:53 +00:00
|
|
|
|
2024-01-24 15:39:09 +00:00
|
|
|
## Defaults:
|
2017-05-03 05:43:56 +00:00
|
|
|
|
2017-01-22 22:51:53 +00:00
|
|
|
1. Background = White
|
|
|
|
2. Button = Red
|
|
|
|
3. Button Radius = 25%
|
|
|
|
4. StayPut = false
|
|
|
|
5. Directional-Axis = 8
|
|
|
|
|
2024-01-24 15:39:09 +00:00
|
|
|
## Setup:
|
2015-10-31 04:57:44 +00:00
|
|
|
|
|
|
|
```xml
|
|
|
|
<com.erz.joysticklibrary.JoyStick
|
|
|
|
android:id="@+id/joy1"
|
|
|
|
android:layout_width="200dp"
|
|
|
|
android:layout_height="200dp"
|
|
|
|
android:layout_gravity="bottom"/>
|
|
|
|
|
2024-01-24 15:39:09 +00:00
|
|
|
<!-- default 25: radius percentage of full size of the view between 25% and 50% -->
|
2015-10-31 04:57:44 +00:00
|
|
|
<com.erz.joysticklibrary.JoyStick
|
|
|
|
android:id="@+id/joy2"
|
|
|
|
android:layout_width="200dp"
|
|
|
|
android:layout_height="200dp"
|
|
|
|
android:layout_gravity="bottom|right"
|
|
|
|
app:padColor="#55ffffff"
|
2017-01-22 22:51:53 +00:00
|
|
|
app:buttonColor="#55ff0000"
|
|
|
|
app:stayPut="true"
|
2024-01-24 15:39:09 +00:00
|
|
|
app:percentage="25"
|
2017-01-22 22:51:53 +00:00
|
|
|
app:backgroundDrawable="R.drawable.background"
|
|
|
|
app:buttonDrawable="R.drawable.button"/>
|
2015-10-31 04:57:44 +00:00
|
|
|
```
|
|
|
|
|
|
|
|
```java
|
2024-01-24 15:39:09 +00:00
|
|
|
JoyStick joyStick = findViewById(R.id.joyStick);
|
2015-10-31 04:57:44 +00:00
|
|
|
|
|
|
|
//or
|
|
|
|
|
|
|
|
JoyStick joyStick = new JoyStick(context);
|
2017-01-22 22:51:53 +00:00
|
|
|
```
|
|
|
|
|
2024-01-24 15:39:09 +00:00
|
|
|
## JoyStickListener:
|
2017-05-03 05:43:56 +00:00
|
|
|
|
2017-01-22 22:51:53 +00:00
|
|
|
```java
|
|
|
|
//JoyStickListener Interface
|
|
|
|
public interface JoyStickListener {
|
|
|
|
void onMove(JoyStick joyStick, double angle, double power, int direction);
|
|
|
|
void onTap();
|
|
|
|
void onDoubleTap();
|
|
|
|
}
|
|
|
|
|
|
|
|
//Set JoyStickListener
|
|
|
|
joyStick.setListener(this);
|
|
|
|
```
|
|
|
|
1. onMove: gets called everytime theres a touch interaction
|
|
|
|
2. onTap: gets called onSingleTapConfirmed
|
|
|
|
3. onDoubleTap: gets called onDoubleTap
|
|
|
|
|
2024-01-24 15:39:09 +00:00
|
|
|
## Directions:
|
2017-01-22 22:51:53 +00:00
|
|
|
1. DIRECTION_CENTER = -1
|
|
|
|
2. DIRECTION_LEFT = 0
|
|
|
|
3. DIRECTION_LEFT_UP = 1
|
|
|
|
4. DIRECTION_UP = 2
|
|
|
|
5. DIRECTION_UP_RIGHT = 3
|
|
|
|
6. DIRECTION_RIGHT = 4
|
|
|
|
7. DIRECTION_RIGHT_DOWN = 5
|
|
|
|
8. DIRECTION_DOWN = 6
|
|
|
|
9. DIRECTION_DOWN_LEFT = 7
|
|
|
|
|
|
|
|
To get JoyStick direction you can use
|
2017-05-03 05:43:56 +00:00
|
|
|
|
2017-01-22 22:51:53 +00:00
|
|
|
```java
|
|
|
|
joyStick.getDirection();
|
|
|
|
```
|
|
|
|
or get it from the JoyStickListener
|
2015-10-31 04:57:44 +00:00
|
|
|
|
2024-01-24 15:39:09 +00:00
|
|
|
## Axis Types:
|
2017-01-22 22:51:53 +00:00
|
|
|
1. TYPE_8_AXIS
|
|
|
|
2. TYPE_4_AXIS
|
|
|
|
3. TYPE_2_AXIS_LEFT_RIGHT
|
|
|
|
4. TYPE_2_AXIS_UP_DOWN
|
|
|
|
|
|
|
|
To set Axis Type:
|
2017-05-03 05:43:56 +00:00
|
|
|
|
2017-01-22 22:51:53 +00:00
|
|
|
```java
|
|
|
|
joyStick.setType(JoyStick.TYPE_4_AXIS);
|
|
|
|
```
|
|
|
|
|
2024-01-24 15:39:09 +00:00
|
|
|
## Getters/Setters
|
2017-05-03 05:43:56 +00:00
|
|
|
|
2017-01-22 22:51:53 +00:00
|
|
|
```java
|
2015-10-31 04:57:44 +00:00
|
|
|
//Set GamePad Color
|
|
|
|
joyStick.setPadColor(Color.BLACK);
|
|
|
|
|
|
|
|
//Set Button Color
|
|
|
|
joyStick.setButtonColor(Color.RED);
|
|
|
|
|
2015-11-03 03:27:28 +00:00
|
|
|
//Set Background Image
|
|
|
|
joyStick.setPadBackground(resId);
|
|
|
|
|
|
|
|
//Set Button Image
|
|
|
|
joyStick.setButtonDrawable(resId);
|
|
|
|
|
|
|
|
//Set Button Scale
|
|
|
|
joyStick.setButtonRadiusScale(scale);
|
|
|
|
|
|
|
|
//Enable Button to Stay Put
|
|
|
|
joyStick.enableStayPut(enable);
|
|
|
|
|
2015-10-31 04:57:44 +00:00
|
|
|
//Get Power
|
|
|
|
joyStick.getPower();
|
|
|
|
|
2015-11-02 03:33:50 +00:00
|
|
|
//Get Angle
|
|
|
|
joyStick.getAngle();
|
|
|
|
|
|
|
|
//Get Angle in Degrees
|
|
|
|
joyStick.getAngleDegrees();
|
2015-10-31 04:57:44 +00:00
|
|
|
```
|
2017-01-22 22:51:53 +00:00
|
|
|
|
2024-01-24 15:39:09 +00:00
|
|
|
## License
|
2015-10-31 04:57:44 +00:00
|
|
|
Copyright 2015 erz05
|
|
|
|
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
you may not use this file except in compliance with the License.
|
|
|
|
You may obtain a copy of the License at
|
|
|
|
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
See the License for the specific language governing permissions and
|
|
|
|
limitations under the License.
|