android: frontend: Update controls overlay placement for new icon resources.
This commit is contained in:
parent
4c4da0510e
commit
0f2e28ef5c
@ -141,16 +141,16 @@ public final class InputOverlay extends SurfaceView implements OnTouchListener {
|
||||
case ButtonType.BUTTON_HOME:
|
||||
case ButtonType.BUTTON_START:
|
||||
case ButtonType.BUTTON_SELECT:
|
||||
scale = 0.0625f;
|
||||
scale = 0.08f;
|
||||
break;
|
||||
case ButtonType.TRIGGER_L:
|
||||
case ButtonType.TRIGGER_R:
|
||||
case ButtonType.BUTTON_ZL:
|
||||
case ButtonType.BUTTON_ZR:
|
||||
scale = 0.25f;
|
||||
scale = 0.18f;
|
||||
break;
|
||||
default:
|
||||
scale = 0.125f;
|
||||
scale = 0.11f;
|
||||
break;
|
||||
}
|
||||
|
||||
@ -218,16 +218,7 @@ public final class InputOverlay extends SurfaceView implements OnTouchListener {
|
||||
final SharedPreferences sPrefs = PreferenceManager.getDefaultSharedPreferences(context);
|
||||
|
||||
// Decide scale based on button ID and user preference
|
||||
float scale;
|
||||
|
||||
switch (buttonUp) {
|
||||
case ButtonType.DPAD_UP:
|
||||
scale = 0.275f;
|
||||
break;
|
||||
default:
|
||||
scale = 0.2125f;
|
||||
break;
|
||||
}
|
||||
float scale = 0.22f;
|
||||
|
||||
scale *= (sPrefs.getInt("controlScale", 50) + 50);
|
||||
scale /= 100;
|
||||
@ -299,22 +290,16 @@ public final class InputOverlay extends SurfaceView implements OnTouchListener {
|
||||
int drawableY = (int) sPrefs.getFloat(joystick + orientation + "-Y", 0f);
|
||||
|
||||
// Decide inner scale based on joystick ID
|
||||
float innerScale;
|
||||
|
||||
switch (joystick) {
|
||||
case ButtonType.STICK_C:
|
||||
innerScale = 1.833f;
|
||||
break;
|
||||
default:
|
||||
innerScale = 1.375f;
|
||||
break;
|
||||
float outerScale = 1.f;
|
||||
if (joystick == ButtonType.STICK_C) {
|
||||
outerScale = 2.f;
|
||||
}
|
||||
|
||||
// Now set the bounds for the InputOverlayDrawableJoystick.
|
||||
// This will dictate where on the screen (and the what the size) the InputOverlayDrawableJoystick will be.
|
||||
int outerSize = bitmapOuter.getWidth();
|
||||
Rect outerRect = new Rect(drawableX, drawableY, drawableX + outerSize, drawableY + outerSize);
|
||||
Rect innerRect = new Rect(0, 0, (int) (outerSize / innerScale), (int) (outerSize / innerScale));
|
||||
Rect outerRect = new Rect(drawableX, drawableY, drawableX + (int) (outerSize / outerScale), drawableY + (int) (outerSize / outerScale));
|
||||
Rect innerRect = new Rect(0, 0, (int) (outerSize / outerScale), (int) (outerSize / outerScale));
|
||||
|
||||
// Send the drawableId to the joystick so it can be referenced when saving control position.
|
||||
final InputOverlayDrawableJoystick overlayDrawable
|
||||
@ -349,7 +334,7 @@ public final class InputOverlay extends SurfaceView implements OnTouchListener {
|
||||
}
|
||||
|
||||
private void HandleOrientationChange() {
|
||||
final int layoutOption = mPreferences.getInt("LandscapeScreenLayout",5 /*LayoutOption_MobileLandscape*/);
|
||||
final int layoutOption = mPreferences.getInt("LandscapeScreenLayout", 5 /*LayoutOption_MobileLandscape*/);
|
||||
final boolean isPortrait = getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT;
|
||||
NativeLibrary.NotifyOrientationChange(layoutOption, isPortrait);
|
||||
}
|
||||
@ -661,7 +646,7 @@ public final class InputOverlay extends SurfaceView implements OnTouchListener {
|
||||
ButtonType.STICK_LEFT, orientation));
|
||||
}
|
||||
if (mPreferences.getBoolean("buttonToggle13", false)) {
|
||||
overlayJoysticks.add(initializeOverlayJoystick(getContext(), R.drawable.stick_main_range,
|
||||
overlayJoysticks.add(initializeOverlayJoystick(getContext(), R.drawable.stick_c_range,
|
||||
R.drawable.stick_c, R.drawable.stick_c_pressed, ButtonType.STICK_C, orientation));
|
||||
}
|
||||
}
|
||||
|
@ -13,6 +13,8 @@ import android.graphics.Rect;
|
||||
import android.graphics.drawable.BitmapDrawable;
|
||||
import android.view.MotionEvent;
|
||||
|
||||
import org.citra.citra_android.NativeLibrary.ButtonType;
|
||||
|
||||
/**
|
||||
* Custom {@link BitmapDrawable} that is capable
|
||||
* of storing it's own ID.
|
||||
@ -146,6 +148,13 @@ public final class InputOverlayDrawableJoystick {
|
||||
int pointerIndex = event.getActionIndex();
|
||||
int fingerPositionX = (int) event.getX(pointerIndex);
|
||||
int fingerPositionY = (int) event.getY(pointerIndex);
|
||||
|
||||
int scale = 1;
|
||||
if (mJoystickType == ButtonType.STICK_C) {
|
||||
// C-stick is scaled down to be half the size of the circle pad
|
||||
scale = 2;
|
||||
}
|
||||
|
||||
switch (event.getAction()) {
|
||||
case MotionEvent.ACTION_DOWN:
|
||||
mPreviousTouchX = fingerPositionX;
|
||||
@ -157,15 +166,15 @@ public final class InputOverlayDrawableJoystick {
|
||||
mControlPositionX += deltaX;
|
||||
mControlPositionY += deltaY;
|
||||
setBounds(new Rect(mControlPositionX, mControlPositionY,
|
||||
mOuterBitmap.getIntrinsicWidth() + mControlPositionX,
|
||||
mOuterBitmap.getIntrinsicHeight() + mControlPositionY));
|
||||
mOuterBitmap.getIntrinsicWidth() / scale + mControlPositionX,
|
||||
mOuterBitmap.getIntrinsicHeight() / scale + mControlPositionY));
|
||||
setVirtBounds(new Rect(mControlPositionX, mControlPositionY,
|
||||
mOuterBitmap.getIntrinsicWidth() + mControlPositionX,
|
||||
mOuterBitmap.getIntrinsicHeight() + mControlPositionY));
|
||||
mOuterBitmap.getIntrinsicWidth() / scale + mControlPositionX,
|
||||
mOuterBitmap.getIntrinsicHeight() / scale + mControlPositionY));
|
||||
SetInnerBounds();
|
||||
setOrigBounds(new Rect(new Rect(mControlPositionX, mControlPositionY,
|
||||
mOuterBitmap.getIntrinsicWidth() + mControlPositionX,
|
||||
mOuterBitmap.getIntrinsicHeight() + mControlPositionY)));
|
||||
mOuterBitmap.getIntrinsicWidth() / scale + mControlPositionX,
|
||||
mOuterBitmap.getIntrinsicHeight() / scale + mControlPositionY)));
|
||||
mPreviousTouchX = fingerPositionX;
|
||||
mPreviousTouchY = fingerPositionY;
|
||||
break;
|
||||
|
@ -3,63 +3,63 @@
|
||||
<integer name="game_grid_columns">1</integer>
|
||||
|
||||
<!-- Default N3DS landscape layout -->
|
||||
<integer name="N3DS_BUTTON_A_X">980</integer>
|
||||
<integer name="N3DS_BUTTON_A_Y">540</integer>
|
||||
<integer name="N3DS_BUTTON_B_X">920</integer>
|
||||
<integer name="N3DS_BUTTON_B_Y">640</integer>
|
||||
<integer name="N3DS_BUTTON_X_X">920</integer>
|
||||
<integer name="N3DS_BUTTON_X_Y">440</integer>
|
||||
<integer name="N3DS_BUTTON_Y_X">860</integer>
|
||||
<integer name="N3DS_BUTTON_Y_Y">540</integer>
|
||||
<integer name="N3DS_BUTTON_A_X">930</integer>
|
||||
<integer name="N3DS_BUTTON_A_Y">620</integer>
|
||||
<integer name="N3DS_BUTTON_B_X">870</integer>
|
||||
<integer name="N3DS_BUTTON_B_Y">720</integer>
|
||||
<integer name="N3DS_BUTTON_X_X">870</integer>
|
||||
<integer name="N3DS_BUTTON_X_Y">520</integer>
|
||||
<integer name="N3DS_BUTTON_Y_X">810</integer>
|
||||
<integer name="N3DS_BUTTON_Y_Y">620</integer>
|
||||
<integer name="N3DS_BUTTON_UP_X">15</integer>
|
||||
<integer name="N3DS_BUTTON_UP_Y">450</integer>
|
||||
<integer name="N3DS_BUTTON_UP_Y">470</integer>
|
||||
<integer name="N3DS_TRIGGER_L_X">13</integer>
|
||||
<integer name="N3DS_TRIGGER_L_Y">180</integer>
|
||||
<integer name="N3DS_TRIGGER_L_Y">0</integer>
|
||||
<integer name="N3DS_BUTTON_ZL_X">13</integer>
|
||||
<integer name="N3DS_BUTTON_ZL_Y">0</integer>
|
||||
<integer name="N3DS_TRIGGER_R_X">907</integer>
|
||||
<integer name="N3DS_TRIGGER_R_Y">180</integer>
|
||||
<integer name="N3DS_BUTTON_ZR_X">907</integer>
|
||||
<integer name="N3DS_BUTTON_ZR_Y">0</integer>
|
||||
<integer name="N3DS_STICK_C_X">735</integer>
|
||||
<integer name="N3DS_STICK_C_Y">650</integer>
|
||||
<integer name="N3DS_STICK_MAIN_X">170</integer>
|
||||
<integer name="N3DS_STICK_MAIN_Y">650</integer>
|
||||
<integer name="N3DS_BUTTON_START_X">517</integer>
|
||||
<integer name="N3DS_BUTTON_ZL_Y">110</integer>
|
||||
<integer name="N3DS_TRIGGER_R_X">895</integer>
|
||||
<integer name="N3DS_TRIGGER_R_Y">0</integer>
|
||||
<integer name="N3DS_BUTTON_ZR_X">895</integer>
|
||||
<integer name="N3DS_BUTTON_ZR_Y">110</integer>
|
||||
<integer name="N3DS_STICK_C_X">740</integer>
|
||||
<integer name="N3DS_STICK_C_Y">770</integer>
|
||||
<integer name="N3DS_STICK_MAIN_X">100</integer>
|
||||
<integer name="N3DS_STICK_MAIN_Y">670</integer>
|
||||
<integer name="N3DS_BUTTON_START_X">510</integer>
|
||||
<integer name="N3DS_BUTTON_START_Y">850</integer>
|
||||
<integer name="N3DS_BUTTON_SELECT_X">557</integer>
|
||||
<integer name="N3DS_BUTTON_SELECT_X">570</integer>
|
||||
<integer name="N3DS_BUTTON_SELECT_Y">850</integer>
|
||||
<integer name="N3DS_BUTTON_HOME_X">477</integer>
|
||||
<integer name="N3DS_BUTTON_HOME_X">450</integer>
|
||||
<integer name="N3DS_BUTTON_HOME_Y">850</integer>
|
||||
|
||||
<!-- Default N3DS portrait layout -->
|
||||
<integer name="N3DS_BUTTON_A_PORTRAIT_X">835</integer>
|
||||
<integer name="N3DS_BUTTON_A_PORTRAIT_Y">920</integer>
|
||||
<integer name="N3DS_BUTTON_B_PORTRAIT_X">740</integer>
|
||||
<integer name="N3DS_BUTTON_B_PORTRAIT_Y">980</integer>
|
||||
<integer name="N3DS_BUTTON_X_PORTRAIT_X">740</integer>
|
||||
<integer name="N3DS_BUTTON_X_PORTRAIT_Y">860</integer>
|
||||
<integer name="N3DS_BUTTON_Y_PORTRAIT_X">645</integer>
|
||||
<integer name="N3DS_BUTTON_Y_PORTRAIT_Y">920</integer>
|
||||
<integer name="N3DS_BUTTON_A_PORTRAIT_X">855</integer>
|
||||
<integer name="N3DS_BUTTON_A_PORTRAIT_Y">870</integer>
|
||||
<integer name="N3DS_BUTTON_B_PORTRAIT_X">760</integer>
|
||||
<integer name="N3DS_BUTTON_B_PORTRAIT_Y">930</integer>
|
||||
<integer name="N3DS_BUTTON_X_PORTRAIT_X">760</integer>
|
||||
<integer name="N3DS_BUTTON_X_PORTRAIT_Y">810</integer>
|
||||
<integer name="N3DS_BUTTON_Y_PORTRAIT_X">665</integer>
|
||||
<integer name="N3DS_BUTTON_Y_PORTRAIT_Y">870</integer>
|
||||
<integer name="N3DS_BUTTON_UP_PORTRAIT_X">10</integer>
|
||||
<integer name="N3DS_BUTTON_UP_PORTRAIT_Y">580</integer>
|
||||
<integer name="N3DS_BUTTON_UP_PORTRAIT_Y">680</integer>
|
||||
<integer name="N3DS_TRIGGER_L_PORTRAIT_X">10</integer>
|
||||
<integer name="N3DS_TRIGGER_L_PORTRAIT_Y">737</integer>
|
||||
<integer name="N3DS_BUTTON_ZL_PORTRAIT_X">0</integer>
|
||||
<integer name="N3DS_BUTTON_ZL_PORTRAIT_Y">0</integer>
|
||||
<integer name="N3DS_TRIGGER_R_PORTRAIT_X">741</integer>
|
||||
<integer name="N3DS_TRIGGER_R_PORTRAIT_Y">737</integer>
|
||||
<integer name="N3DS_BUTTON_ZR_PORTRAIT_X">750</integer>
|
||||
<integer name="N3DS_BUTTON_ZR_PORTRAIT_Y">0</integer>
|
||||
<integer name="N3DS_STICK_C_PORTRAIT_X">710</integer>
|
||||
<integer name="N3DS_STICK_C_PORTRAIT_Y">590</integer>
|
||||
<integer name="N3DS_TRIGGER_L_PORTRAIT_Y">0</integer>
|
||||
<integer name="N3DS_BUTTON_ZL_PORTRAIT_X">10</integer>
|
||||
<integer name="N3DS_BUTTON_ZL_PORTRAIT_Y">70</integer>
|
||||
<integer name="N3DS_TRIGGER_R_PORTRAIT_X">810</integer>
|
||||
<integer name="N3DS_TRIGGER_R_PORTRAIT_Y">0</integer>
|
||||
<integer name="N3DS_BUTTON_ZR_PORTRAIT_X">810</integer>
|
||||
<integer name="N3DS_BUTTON_ZR_PORTRAIT_Y">70</integer>
|
||||
<integer name="N3DS_STICK_C_PORTRAIT_X">800</integer>
|
||||
<integer name="N3DS_STICK_C_PORTRAIT_Y">710</integer>
|
||||
<integer name="N3DS_STICK_MAIN_PORTRAIT_X">40</integer>
|
||||
<integer name="N3DS_STICK_MAIN_PORTRAIT_Y">870</integer>
|
||||
<integer name="N3DS_BUTTON_HOME_PORTRAIT_X">401</integer>
|
||||
<integer name="N3DS_STICK_MAIN_PORTRAIT_Y">840</integer>
|
||||
<integer name="N3DS_BUTTON_HOME_PORTRAIT_X">360</integer>
|
||||
<integer name="N3DS_BUTTON_HOME_PORTRAIT_Y">794</integer>
|
||||
<integer name="N3DS_BUTTON_START_PORTRAIT_X">471</integer>
|
||||
<integer name="N3DS_BUTTON_START_PORTRAIT_X">460</integer>
|
||||
<integer name="N3DS_BUTTON_START_PORTRAIT_Y">794</integer>
|
||||
<integer name="N3DS_BUTTON_SELECT_PORTRAIT_X">541</integer>
|
||||
<integer name="N3DS_BUTTON_SELECT_PORTRAIT_X">560</integer>
|
||||
<integer name="N3DS_BUTTON_SELECT_PORTRAIT_Y">794</integer>
|
||||
|
||||
</resources>
|
||||
|
Loading…
x
Reference in New Issue
Block a user