forked from dangilcal/Helldivers-app-movil
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f4d5182b3f | |||
|
|
878934832a |
@@ -42,12 +42,6 @@ android {
|
||||
coreLibraryDesugaringEnabled true
|
||||
}
|
||||
|
||||
java {
|
||||
toolchain {
|
||||
languageVersion = JavaLanguageVersion.of(17)
|
||||
}
|
||||
}
|
||||
|
||||
buildFeatures {
|
||||
buildConfig true
|
||||
}
|
||||
|
||||
@@ -193,8 +193,7 @@ private static final String[] NAMES = {
|
||||
private TextView tvCounter;
|
||||
private ImageView ivStratagemIcon;
|
||||
private LinearLayout sequenceContainer;
|
||||
private ImageButton btnUp, btnDown, btnLeft, btnRight;
|
||||
private android.widget.Button btnVolver;
|
||||
private ImageButton btnUp, btnDown, btnLeft, btnRight, btnVolver;
|
||||
private ProgressBar progressBar;
|
||||
private ImageView ivFailure;
|
||||
|
||||
@@ -286,8 +285,7 @@ private static final String[] NAMES = {
|
||||
arrowView.setLayoutParams(params);
|
||||
|
||||
arrowView.setText(String.valueOf(ARROW_CHARS.charAt(sequence[i])));
|
||||
arrowView.setTextSize(36);
|
||||
arrowView.setTextColor(Color.parseColor("#FFD700"));
|
||||
arrowView.setTextColor(Color.parseColor("#FFFFFF"));
|
||||
arrowView.setGravity(Gravity.CENTER);
|
||||
arrowView.setBackgroundResource(R.drawable.arrow_white);
|
||||
|
||||
@@ -296,9 +294,6 @@ private static final String[] NAMES = {
|
||||
}
|
||||
|
||||
private void onInputWithSound(int dir) {
|
||||
if (soundManager != null) {
|
||||
try { soundManager.playTone(dir); } catch (Exception e) {}
|
||||
}
|
||||
onInput(dir);
|
||||
}
|
||||
|
||||
@@ -307,6 +302,9 @@ private static final String[] NAMES = {
|
||||
bloqueado = true;
|
||||
|
||||
if (dir == sequence[playerIndex]) {
|
||||
if (soundManager != null) {
|
||||
try { soundManager.playTone(dir); } catch (Exception e) {}
|
||||
}
|
||||
playerIndex++;
|
||||
|
||||
if (sequenceContainer != null && playerIndex <= sequence.length) {
|
||||
@@ -344,6 +342,18 @@ private static final String[] NAMES = {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPause() {
|
||||
super.onPause();
|
||||
if (soundManager != null) soundManager.pause();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
if (soundManager != null) soundManager.resume();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.helldivers.app;
|
||||
import android.graphics.Bitmap;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.widget.Button;
|
||||
import android.widget.ImageButton;
|
||||
import android.widget.ImageView;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import com.google.zxing.BarcodeFormat;
|
||||
@@ -20,7 +20,7 @@ public class ActivityQR extends AppCompatActivity {
|
||||
|
||||
private SoundManager soundManager;
|
||||
private ImageView qrImageView;
|
||||
private Button btnVolver;
|
||||
private ImageButton btnVolver;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
@@ -38,7 +38,6 @@ public class ActivityQR extends AppCompatActivity {
|
||||
btnVolver.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
soundManager.playButtonClick();
|
||||
finish();
|
||||
}
|
||||
});
|
||||
|
||||
@@ -35,18 +35,12 @@ public class MainActivity extends AppCompatActivity {
|
||||
|
||||
if (btnQrInstagram != null) {
|
||||
btnQrInstagram.setOnClickListener(v -> {
|
||||
if (soundManager != null) {
|
||||
try { soundManager.playButtonClick(); } catch (Exception e) {}
|
||||
}
|
||||
startActivity(new Intent(this, ActivityQR.class));
|
||||
});
|
||||
}
|
||||
|
||||
if (btnMinijuego != null) {
|
||||
btnMinijuego.setOnClickListener(v -> {
|
||||
if (soundManager != null) {
|
||||
try { soundManager.playButtonClick(); } catch (Exception e) {}
|
||||
}
|
||||
startActivity(new Intent(this, ActivityGame.class));
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,97 +1,68 @@
|
||||
package com.helldivers.app;
|
||||
|
||||
import android.content.Context;
|
||||
import android.media.AudioManager;
|
||||
import android.media.ToneGenerator;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.media.AudioAttributes;
|
||||
import android.media.SoundPool;
|
||||
|
||||
/**
|
||||
* SoundManager - Gestor de sonidos usando ToneGenerator
|
||||
* Compatible con API 18+, mas ligero que SoundPool para dispositivos de baja potencia
|
||||
* SoundManager - Gestor de sonidos usando SoundPool para reproducir archivos de recursos
|
||||
*/
|
||||
public class SoundManager {
|
||||
|
||||
private static final int VOLUME = 80; // 0-100
|
||||
|
||||
private ToneGenerator toneGenerator;
|
||||
private Handler handler;
|
||||
private SoundPool soundPool;
|
||||
private int soundPop;
|
||||
private int soundError;
|
||||
private boolean enabled = true;
|
||||
|
||||
public SoundManager(Context context) {
|
||||
// ToneGenerator.STREAM_MUSIC para compatibilidad API 18+
|
||||
toneGenerator = new ToneGenerator(AudioManager.STREAM_MUSIC, VOLUME);
|
||||
handler = new Handler(Looper.getMainLooper());
|
||||
AudioAttributes audioAttributes = new AudioAttributes.Builder()
|
||||
.setUsage(AudioAttributes.USAGE_GAME)
|
||||
.setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
|
||||
.build();
|
||||
|
||||
soundPool = new SoundPool.Builder()
|
||||
.setMaxStreams(5)
|
||||
.setAudioAttributes(audioAttributes)
|
||||
.build();
|
||||
|
||||
// Cargar los sonidos desde res/raw
|
||||
soundPop = soundPool.load(context, R.raw.pop, 1);
|
||||
soundError = soundPool.load(context, R.raw.error, 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sonido de click de boton - tono corto y agudo
|
||||
* Sonido de click de boton - reproduce pop.mp3
|
||||
*/
|
||||
public void playButtonClick() {
|
||||
if (!enabled || toneGenerator == null) return;
|
||||
// Tono DTMF 6 - sonido tipo boton tactil
|
||||
toneGenerator.startTone(ToneGenerator.TONE_DTMF_6, 80);
|
||||
playPop();
|
||||
}
|
||||
|
||||
/**
|
||||
* Sonido de exito - secuencia ascendente
|
||||
* Sonido de exito
|
||||
*/
|
||||
public void playSuccess() {
|
||||
if (!enabled || toneGenerator == null) return;
|
||||
// Tono de confirmacion propositivo
|
||||
toneGenerator.startTone(ToneGenerator.TONE_PROP_ACK, 150);
|
||||
// Por ahora no tenemos un sonido de éxito específico en raw,
|
||||
// podríamos usar pop o dejarlo vacío si no se solicita.
|
||||
}
|
||||
|
||||
/**
|
||||
* Sonido de fallo - tono bajo grave
|
||||
* Sonido de fallo - reproduce error.mp3
|
||||
*/
|
||||
public void playFailure() {
|
||||
if (!enabled || toneGenerator == null) return;
|
||||
// Tono de error
|
||||
toneGenerator.startTone(ToneGenerator.TONE_PROP_NACK, 200);
|
||||
if (!enabled || soundPool == null) return;
|
||||
soundPool.play(soundError, 1.0f, 1.0f, 1, 0, 1.0f);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tono para direcciones del juego
|
||||
* Usa diferentes tonos DTMF para cada direccion
|
||||
* Tono para direcciones del juego - reproduce pop.mp3 para cualquier dirección
|
||||
*/
|
||||
public void playTone(int direction) {
|
||||
if (!enabled || toneGenerator == null) return;
|
||||
|
||||
int tone;
|
||||
switch (direction) {
|
||||
case 0: // UP
|
||||
tone = ToneGenerator.TONE_DTMF_2;
|
||||
break;
|
||||
case 1: // DOWN
|
||||
tone = ToneGenerator.TONE_DTMF_8;
|
||||
break;
|
||||
case 2: // LEFT
|
||||
tone = ToneGenerator.TONE_DTMF_4;
|
||||
break;
|
||||
case 3: // RIGHT
|
||||
tone = ToneGenerator.TONE_DTMF_6;
|
||||
break;
|
||||
default:
|
||||
tone = ToneGenerator.TONE_DTMF_0;
|
||||
}
|
||||
toneGenerator.startTone(tone, 100);
|
||||
playPop();
|
||||
}
|
||||
|
||||
/**
|
||||
* Tono de inicio de secuencia
|
||||
*/
|
||||
public void playSequenceStart() {
|
||||
if (!enabled || toneGenerator == null) return;
|
||||
toneGenerator.startTone(ToneGenerator.TONE_SUP_DIAL, 100);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tono de alerta/peligro
|
||||
*/
|
||||
public void playAlert() {
|
||||
if (!enabled || toneGenerator == null) return;
|
||||
toneGenerator.startTone(ToneGenerator.TONE_CDMA_ALERT_CALL_GUARD, 150);
|
||||
private void playPop() {
|
||||
if (!enabled || soundPool == null) return;
|
||||
soundPool.play(soundPop, 1.0f, 1.0f, 1, 0, 1.0f);
|
||||
}
|
||||
|
||||
public void setEnabled(boolean enabled) {
|
||||
@@ -102,26 +73,18 @@ public class SoundManager {
|
||||
return enabled;
|
||||
}
|
||||
|
||||
/**
|
||||
* Stub para compatibilidad con ciclo de vida Activity
|
||||
* ToneGenerator no necesita pause/resume explicito
|
||||
*/
|
||||
public void pause() {
|
||||
// No-op: ToneGenerator se maneja automaticamente
|
||||
if (soundPool != null) soundPool.autoPause();
|
||||
}
|
||||
|
||||
/**
|
||||
* Stub para compatibilidad con ciclo de vida Activity
|
||||
* ToneGenerator no necesita pause/resume explicito
|
||||
*/
|
||||
public void resume() {
|
||||
// No-op: ToneGenerator se maneja automaticamente
|
||||
if (soundPool != null) soundPool.autoResume();
|
||||
}
|
||||
|
||||
public void release() {
|
||||
if (toneGenerator != null) {
|
||||
toneGenerator.release();
|
||||
toneGenerator = null;
|
||||
if (soundPool != null) {
|
||||
soundPool.release();
|
||||
soundPool = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4,7 +4,7 @@
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="#232830" />
|
||||
<corners android:radius="6dp" />
|
||||
<stroke android:width="2dp" android:color="#FFD700" />
|
||||
<stroke android:width="2dp" android:color="#FFFFFF" />
|
||||
</shape>
|
||||
</item>
|
||||
<item android:top="4dp" android:bottom="4dp" android:left="4dp" android:right="4dp">
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Fondo con gradiente vertical estilo Helldivers 2 -->
|
||||
<!-- Fondo con gradiente vertical azul -->
|
||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item>
|
||||
<shape android:shape="rectangle">
|
||||
<gradient
|
||||
android:angle="270"
|
||||
android:startColor="#0D0D0D"
|
||||
android:centerColor="#121417"
|
||||
android:endColor="#1B1F25"
|
||||
android:startColor="@color/helldivers_dark_bg"
|
||||
android:centerColor="@color/helldivers_dark_secondary"
|
||||
android:endColor="@color/helldivers_dark_tertiary"
|
||||
android:type="linear" />
|
||||
</shape>
|
||||
</item>
|
||||
|
||||
@@ -4,6 +4,6 @@
|
||||
android:shape="rectangle">
|
||||
<solid android:color="#FFFFFF" />
|
||||
<corners android:radius="12dp" />
|
||||
<stroke android:width="3dp" android:color="#FFD700" />
|
||||
<stroke android:width="3dp" android:color="#FFFFFF" />
|
||||
<padding android:left="16dp" android:top="16dp" android:right="16dp" android:bottom="16dp" />
|
||||
</shape>
|
||||
@@ -5,7 +5,7 @@
|
||||
<layer-list>
|
||||
<item>
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="#FFD700" />
|
||||
<solid android:color="#FFFFFF" />
|
||||
<corners android:radius="8dp" />
|
||||
</shape>
|
||||
</item>
|
||||
@@ -42,7 +42,7 @@
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="#1B1F25" />
|
||||
<corners android:radius="8dp" />
|
||||
<stroke android:width="2dp" android:color="#FFD700" />
|
||||
<stroke android:width="2dp" android:color="#FFFFFF" />
|
||||
</shape>
|
||||
</item>
|
||||
<item android:top="2dp" android:left="2dp" android:right="2dp" android:bottom="2dp">
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Boton primario estilo Helldivers - Amarillo neon -->
|
||||
<!-- Boton primario estilo Helldivers - Blanco -->
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:state_pressed="true">
|
||||
<layer-list>
|
||||
<item>
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="#2C3138" />
|
||||
<solid android:color="@color/btn_bg_pressed" />
|
||||
<corners android:radius="8dp" />
|
||||
<stroke android:width="3dp" android:color="#FFE135" />
|
||||
<stroke android:width="3dp" android:color="#FFFFFF" />
|
||||
</shape>
|
||||
</item>
|
||||
<item android:top="2dp" android:left="2dp" android:right="2dp" android:bottom="2dp">
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="#1B1F25" />
|
||||
<solid android:color="@color/btn_bg_dark" />
|
||||
<corners android:radius="6dp" />
|
||||
</shape>
|
||||
</item>
|
||||
@@ -23,14 +23,14 @@
|
||||
<layer-list>
|
||||
<item>
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="#1B1F25" />
|
||||
<solid android:color="@color/btn_bg_dark" />
|
||||
<corners android:radius="8dp" />
|
||||
<stroke android:width="2dp" android:color="#FFE135" />
|
||||
<stroke android:width="2dp" android:color="#FFFFFF" />
|
||||
</shape>
|
||||
</item>
|
||||
<item android:top="2dp" android:left="2dp" android:right="2dp" android:bottom="2dp">
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="#1B1F25" />
|
||||
<solid android:color="@color/btn_bg_dark" />
|
||||
<corners android:radius="6dp" />
|
||||
</shape>
|
||||
</item>
|
||||
@@ -41,14 +41,14 @@
|
||||
<layer-list>
|
||||
<item>
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="#1B1F25" />
|
||||
<solid android:color="@color/btn_bg_dark" />
|
||||
<corners android:radius="8dp" />
|
||||
<stroke android:width="2dp" android:color="#FFD700" />
|
||||
<stroke android:width="2dp" android:color="#FFFFFF" />
|
||||
</shape>
|
||||
</item>
|
||||
<item android:top="2dp" android:left="2dp" android:right="2dp" android:bottom="2dp">
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="#1B1F25" />
|
||||
<solid android:color="@color/btn_bg_dark" />
|
||||
<corners android:radius="6dp" />
|
||||
</shape>
|
||||
</item>
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Boton secundario estilo Helldivers - Azul neon -->
|
||||
<!-- Boton secundario estilo Helldivers - Azul con bordes blancos -->
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:state_pressed="true">
|
||||
<layer-list>
|
||||
<item>
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="#2C3138" />
|
||||
<solid android:color="@color/btn_bg_pressed" />
|
||||
<corners android:radius="6dp" />
|
||||
<stroke android:width="2dp" android:color="#1E90FF" />
|
||||
<stroke android:width="2dp" android:color="#FFFFFF" />
|
||||
</shape>
|
||||
</item>
|
||||
<item android:top="1dp" android:left="1dp" android:right="1dp" android:bottom="1dp">
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="#1B1F25" />
|
||||
<solid android:color="@color/btn_bg_dark" />
|
||||
<corners android:radius="5dp" />
|
||||
</shape>
|
||||
</item>
|
||||
@@ -23,14 +23,14 @@
|
||||
<layer-list>
|
||||
<item>
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="#1B1F25" />
|
||||
<solid android:color="@color/btn_bg_dark" />
|
||||
<corners android:radius="6dp" />
|
||||
<stroke android:width="1dp" android:color="#00BFFF" />
|
||||
<stroke android:width="1dp" android:color="#FFFFFF" />
|
||||
</shape>
|
||||
</item>
|
||||
<item android:top="1dp" android:left="1dp" android:right="1dp" android:bottom="1dp">
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="#1B1F25" />
|
||||
<solid android:color="@color/btn_bg_dark" />
|
||||
<corners android:radius="5dp" />
|
||||
</shape>
|
||||
</item>
|
||||
|
||||
9
app/src/main/res/drawable/ic_back_arrow.xml
Normal file
9
app/src/main/res/drawable/ic_back_arrow.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#FFFFFF"
|
||||
android:pathData="M20,11H7.83l5.59,-5.59L12,4l-8,8 8,8 1.41,-1.41L7.83,13H20v-2z" />
|
||||
</vector>
|
||||
14
app/src/main/res/drawable/ic_dpad_button.xml
Normal file
14
app/src/main/res/drawable/ic_dpad_button.xml
Normal file
@@ -0,0 +1,14 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="256dp"
|
||||
android:height="256dp"
|
||||
android:viewportWidth="256"
|
||||
android:viewportHeight="256">
|
||||
<group
|
||||
android:scaleX="0.1"
|
||||
android:scaleY="-0.1"
|
||||
android:translateY="256">
|
||||
<path
|
||||
android:fillColor="#FFFFFF"
|
||||
android:pathData="M983 1634 c-164 -185 -299 -340 -301 -345 -2 -5 72 -9 172 -9 l176 0 0 -345 0 -345 250 0 250 0 0 345 0 345 186 0 c107 0 184 4 182 9 -6 17 -599 681 -608 681 -5 0 -143 -151 -307 -336z" />
|
||||
</group>
|
||||
</vector>
|
||||
@@ -5,35 +5,35 @@
|
||||
android:height="32dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24"
|
||||
android:tint="#FFD700">
|
||||
android:tint="#FFFFFF">
|
||||
<path
|
||||
android:fillColor="#FFD700"
|
||||
android:fillColor="#FFFFFF"
|
||||
android:pathData="M3,11h8V3H3V11zM5,5h4v4H5V5z" />
|
||||
<path
|
||||
android:fillColor="#FFD700"
|
||||
android:fillColor="#FFFFFF"
|
||||
android:pathData="M13,3v8h8V3H13zM19,9h-4V5h4V9z" />
|
||||
<path
|
||||
android:fillColor="#FFD700"
|
||||
android:fillColor="#FFFFFF"
|
||||
android:pathData="M3,21h8v-8H3V21zM5,15h4v4H5V15z" />
|
||||
<path
|
||||
android:fillColor="#FFD700"
|
||||
android:fillColor="#FFFFFF"
|
||||
android:pathData="M13,13h2v2h-2z" />
|
||||
<path
|
||||
android:fillColor="#FFD700"
|
||||
android:fillColor="#FFFFFF"
|
||||
android:pathData="M13,17h2v2h-2z" />
|
||||
<path
|
||||
android:fillColor="#FFD700"
|
||||
android:fillColor="#FFFFFF"
|
||||
android:pathData="M17,13h2v4h-2z" />
|
||||
<path
|
||||
android:fillColor="#FFD700"
|
||||
android:fillColor="#FFFFFF"
|
||||
android:pathData="M19,17h2v2h-2z" />
|
||||
<path
|
||||
android:fillColor="#FFD700"
|
||||
android:fillColor="#FFFFFF"
|
||||
android:pathData="M19,13h2v2h-2z" />
|
||||
<path
|
||||
android:fillColor="#FFD700"
|
||||
android:fillColor="#FFFFFF"
|
||||
android:pathData="M17,19h4v2h-4z" />
|
||||
<path
|
||||
android:fillColor="#FFD700"
|
||||
android:fillColor="#FFFFFF"
|
||||
android:pathData="M13,19h2v2h-2z" />
|
||||
</vector>
|
||||
@@ -14,7 +14,7 @@
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="#00000000" />
|
||||
<corners android:radius="8dp" />
|
||||
<stroke android:width="3dp" android:color="#FFD700" />
|
||||
<stroke android:width="3dp" android:color="#FFFFFF" />
|
||||
</shape>
|
||||
</item>
|
||||
</layer-list>
|
||||
@@ -8,7 +8,7 @@
|
||||
<item android:bottom="3dp" android:left="3dp" android:right="3dp" android:top="3dp">
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="#00000000" />
|
||||
<stroke android:width="2dp" android:color="#FFD700" />
|
||||
<stroke android:width="2dp" android:color="#FFFFFF" />
|
||||
</shape>
|
||||
</item>
|
||||
</layer-list>
|
||||
@@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@drawable/bg_helldivers_gradient">
|
||||
@@ -8,18 +9,6 @@
|
||||
|
||||
<!-- Nombre de la estratagema -->
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_counter_label"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignTop="@id/tv_counter"
|
||||
android:layout_marginTop="5dp"
|
||||
android:layout_marginEnd="24dp"
|
||||
android:layout_toStartOf="@id/tv_counter"
|
||||
android:text="ESTRATAGEMAS: "
|
||||
android:textColor="#00FF00"
|
||||
android:textSize="16sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_counter"
|
||||
android:layout_width="wrap_content"
|
||||
@@ -31,7 +20,7 @@
|
||||
android:layout_marginEnd="15dp"
|
||||
android:layout_marginBottom="207dp"
|
||||
android:text="0"
|
||||
android:textColor="#00FF00"
|
||||
android:textColor="#fde902"
|
||||
android:textSize="24sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
@@ -45,7 +34,7 @@
|
||||
android:text=""
|
||||
android:textSize="20sp"
|
||||
android:textStyle="bold"
|
||||
android:textColor="#FFD700" />
|
||||
android:textColor="#FFFFFF" />
|
||||
|
||||
<!-- Contenedor principal: Icono + Secuencia + Grid flechas -->
|
||||
<LinearLayout
|
||||
@@ -106,9 +95,10 @@
|
||||
android:layout_margin="4dp"
|
||||
android:background="@drawable/btn_direction"
|
||||
android:contentDescription="Up"
|
||||
android:rotation="-90"
|
||||
android:rotation="0"
|
||||
android:scaleType="centerInside"
|
||||
android:src="@drawable/stepforward" />
|
||||
app:tint="#FFFFFF"
|
||||
android:src="@drawable/ic_dpad_button" />
|
||||
|
||||
<Space
|
||||
android:layout_width="80dp"
|
||||
@@ -125,9 +115,10 @@
|
||||
android:layout_margin="4dp"
|
||||
android:background="@drawable/btn_direction"
|
||||
android:contentDescription="Left"
|
||||
android:rotation="180"
|
||||
android:rotation="-90"
|
||||
android:scaleType="centerInside"
|
||||
android:src="@drawable/stepforward" />
|
||||
app:tint="#FFFFFF"
|
||||
android:src="@drawable/ic_dpad_button" />
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/btn_down"
|
||||
@@ -138,9 +129,10 @@
|
||||
android:layout_margin="4dp"
|
||||
android:background="@drawable/btn_direction"
|
||||
android:contentDescription="Down"
|
||||
android:rotation="90"
|
||||
android:rotation="180"
|
||||
android:scaleType="centerInside"
|
||||
android:src="@drawable/stepforward" />
|
||||
app:tint="#FFFFFF"
|
||||
android:src="@drawable/ic_dpad_button" />
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/btn_right"
|
||||
@@ -151,9 +143,10 @@
|
||||
android:layout_margin="4dp"
|
||||
android:background="@drawable/btn_direction"
|
||||
android:contentDescription="Right"
|
||||
android:rotation="0"
|
||||
android:rotation="90"
|
||||
android:scaleType="centerInside"
|
||||
android:src="@drawable/stepforward" />
|
||||
app:tint="#FFFFFF"
|
||||
android:src="@drawable/ic_dpad_button" />
|
||||
|
||||
<Space
|
||||
android:layout_width="80dp"
|
||||
@@ -180,19 +173,20 @@
|
||||
</LinearLayout>
|
||||
|
||||
<!-- Volver -->
|
||||
<Button
|
||||
<ImageButton
|
||||
android:id="@+id/btn_volver"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:text="VOLVER"
|
||||
android:textSize="14sp"
|
||||
android:textColor="#FFD700"
|
||||
android:layout_width="48dp"
|
||||
android:layout_height="48dp"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginTop="16dp"
|
||||
android:background="@drawable/btn_helldivers_secondary"
|
||||
android:paddingHorizontal="24dp"
|
||||
android:paddingVertical="8dp" />
|
||||
android:contentDescription="Volver"
|
||||
android:padding="10dp"
|
||||
android:scaleType="centerInside"
|
||||
android:src="@drawable/ic_back_arrow"
|
||||
app:tint="#FFFFFF" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_stratagem_icon"
|
||||
@@ -211,7 +205,7 @@
|
||||
android:layout_width="80dp"
|
||||
android:layout_height="80dp"
|
||||
android:layout_centerInParent="true"
|
||||
android:indeterminateTint="#FFD700"
|
||||
android:indeterminateTint="#FFFFFF"
|
||||
android:visibility="gone" />
|
||||
|
||||
<!-- Failure Indicator (X) -->
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@drawable/bg_helldivers_gradient">
|
||||
@@ -16,7 +17,7 @@
|
||||
android:contentDescription="Super Tierra"
|
||||
android:adjustViewBounds="true"
|
||||
android:maxWidth="280dp"
|
||||
android:tint="#FFD700" />
|
||||
android:tint="#FFFFFF" />
|
||||
|
||||
<!-- Botón Estratagemas - Esquina izquierda -->
|
||||
<Button
|
||||
@@ -32,7 +33,7 @@
|
||||
android:paddingVertical="10dp"
|
||||
android:text="ESTRATAGEMAS"
|
||||
android:textAllCaps="true"
|
||||
android:textColor="#FFD700"
|
||||
android:textColor="#FFFFFF"
|
||||
android:textSize="14sp" />
|
||||
|
||||
<!-- Botón QR Instagram - Esquina derecha -->
|
||||
@@ -49,7 +50,7 @@
|
||||
android:paddingVertical="10dp"
|
||||
android:text="@string/btn_qr_instagram"
|
||||
android:textAllCaps="true"
|
||||
android:textColor="#FFD700"
|
||||
android:textColor="#FFFFFF"
|
||||
android:textSize="14sp" />
|
||||
|
||||
<!-- Grid de Flechas - Centro -->
|
||||
@@ -73,9 +74,10 @@
|
||||
android:layout_column="1"
|
||||
android:background="@drawable/btn_direction"
|
||||
android:contentDescription="Up"
|
||||
android:rotation="-90"
|
||||
android:rotation="0"
|
||||
android:scaleType="centerInside"
|
||||
android:src="@drawable/stepforward" />
|
||||
app:tint="#FFFFFF"
|
||||
android:src="@drawable/ic_dpad_button" />
|
||||
|
||||
<Space android:layout_width="100dp" android:layout_height="100dp" android:layout_row="0" android:layout_column="2" />
|
||||
|
||||
@@ -87,9 +89,10 @@
|
||||
android:layout_column="0"
|
||||
android:background="@drawable/btn_direction"
|
||||
android:contentDescription="Left"
|
||||
android:rotation="180"
|
||||
android:rotation="-90"
|
||||
android:scaleType="centerInside"
|
||||
android:src="@drawable/stepforward" />
|
||||
app:tint="#FFFFFF"
|
||||
android:src="@drawable/ic_dpad_button" />
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/btn_down"
|
||||
@@ -99,9 +102,10 @@
|
||||
android:layout_column="1"
|
||||
android:background="@drawable/btn_direction"
|
||||
android:contentDescription="Down"
|
||||
android:rotation="90"
|
||||
android:rotation="180"
|
||||
android:scaleType="centerInside"
|
||||
android:src="@drawable/stepforward" />
|
||||
app:tint="#FFFFFF"
|
||||
android:src="@drawable/ic_dpad_button" />
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/btn_right"
|
||||
@@ -111,9 +115,10 @@
|
||||
android:layout_column="2"
|
||||
android:background="@drawable/btn_direction"
|
||||
android:contentDescription="Right"
|
||||
android:rotation="0"
|
||||
android:rotation="90"
|
||||
android:scaleType="centerInside"
|
||||
android:src="@drawable/stepforward" />
|
||||
app:tint="#FFFFFF"
|
||||
android:src="@drawable/ic_dpad_button" />
|
||||
|
||||
<Space android:layout_width="100dp" android:layout_height="20dp" android:layout_row="2" android:layout_column="0" />
|
||||
<Space android:layout_width="100dp" android:layout_height="20dp" android:layout_row="2" android:layout_column="1" />
|
||||
|
||||
@@ -1,33 +1,33 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@drawable/bg_helldivers_gradient">
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/btn_volver"
|
||||
android:layout_width="48dp"
|
||||
android:layout_height="48dp"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginTop="16dp"
|
||||
android:background="@drawable/btn_helldivers_secondary"
|
||||
android:contentDescription="Volver"
|
||||
android:padding="10dp"
|
||||
android:scaleType="centerInside"
|
||||
android:src="@drawable/ic_back_arrow"
|
||||
app:tint="#FFFFFF" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/qr_image"
|
||||
android:layout_width="440dp"
|
||||
android:layout_height="379dp"
|
||||
android:layout_above="@id/btn_volver"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:layout_marginBottom="-48dp"
|
||||
android:layout_centerInParent="true"
|
||||
android:background="#FFFFFF"
|
||||
android:contentDescription="@string/qr_description"
|
||||
android:padding="8dp"
|
||||
android:scaleType="fitCenter" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/btn_volver"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:background="@drawable/btn_helldivers_secondary"
|
||||
android:paddingHorizontal="36dp"
|
||||
android:paddingVertical="12dp"
|
||||
android:text="VOLVER"
|
||||
android:textColor="#FFD700"
|
||||
android:textSize="18sp" />
|
||||
|
||||
</RelativeLayout>
|
||||
BIN
app/src/main/res/raw/error.mp3
Normal file
BIN
app/src/main/res/raw/error.mp3
Normal file
Binary file not shown.
BIN
app/src/main/res/raw/pop.mp3
Normal file
BIN
app/src/main/res/raw/pop.mp3
Normal file
Binary file not shown.
@@ -1,16 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- Colores Helldivers 2 Theme -->
|
||||
<!-- Colores Helldivers 2 Theme Modificado -->
|
||||
|
||||
<!-- Colores principales -->
|
||||
<color name="helldivers_black">#000000</color>
|
||||
<color name="helldivers_dark_bg">#0D0D0D</color>
|
||||
<color name="helldivers_dark_secondary">#1B1F25</color>
|
||||
<color name="helldivers_dark_tertiary">#121417</color>
|
||||
<color name="helldivers_dark_bg">#006ab2</color>
|
||||
<color name="helldivers_dark_secondary">#005a96</color>
|
||||
<color name="helldivers_dark_tertiary">#004b7d</color>
|
||||
|
||||
<!-- Colores neon/accent -->
|
||||
<color name="helldivers_yellow">#FFD700</color>
|
||||
<color name="helldivers_yellow_bright">#FFE135</color>
|
||||
<color name="helldivers_yellow">#FFFFFF</color>
|
||||
<color name="helldivers_yellow_bright">#FFFFFF</color>
|
||||
<color name="helldivers_blue">#00BFFF</color>
|
||||
<color name="helldivers_blue_bright">#1E90FF</color>
|
||||
<color name="helldivers_red">#FF3B30</color>
|
||||
@@ -23,9 +23,9 @@
|
||||
<color name="helldivers_gray_light">#C7C7CC</color>
|
||||
|
||||
<!-- Colores botones -->
|
||||
<color name="btn_bg_dark">#1B1F25</color>
|
||||
<color name="btn_bg_pressed">#2C3138</color>
|
||||
<color name="btn_border_yellow">#FFD700</color>
|
||||
<color name="btn_bg_dark">#004b7d</color>
|
||||
<color name="btn_bg_pressed">#003c64</color>
|
||||
<color name="btn_border_yellow">#FFFFFF</color>
|
||||
<color name="btn_border_blue">#00BFFF</color>
|
||||
|
||||
<!-- Colores genericos de sistema -->
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<string name="logo_description">Logo Helldivers 2</string>
|
||||
|
||||
<!-- Botones Main -->
|
||||
<string name="btn_qr_instagram">Seguir en\nInstagram</string>
|
||||
<string name="btn_qr_instagram">INSTAGRAM</string>
|
||||
<string name="btn_minijuego">Estratagemas\nTraining</string>
|
||||
<string name="btn_volver">VOLVER</string>
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<!-- Colores principales -->
|
||||
<item name="colorPrimary">@color/helldivers_dark_secondary</item>
|
||||
<item name="colorPrimaryDark">@color/helldivers_black</item>
|
||||
<item name="colorAccent">@color/helldivers_yellow</item>
|
||||
<item name="colorAccent">@color/helldivers_white</item>
|
||||
|
||||
<!-- Fondo -->
|
||||
<item name="android:windowBackground">@color/helldivers_black</item>
|
||||
@@ -23,19 +23,19 @@
|
||||
|
||||
<!-- Botones -->
|
||||
<item name="colorButtonNormal">@color/btn_bg_dark</item>
|
||||
<item name="colorControlHighlight">@color/helldivers_yellow</item>
|
||||
<item name="colorControlHighlight">@color/helldivers_white</item>
|
||||
</style>
|
||||
|
||||
<!-- Estilo base para botones Helldivers -->
|
||||
<style name="HelldiversButton" parent="Widget.AppCompat.Button">
|
||||
<item name="android:minHeight">48dp</item>
|
||||
<item name="android:textColor">@color/helldivers_yellow</item>
|
||||
<item name="android:textColor">@color/helldivers_white</item>
|
||||
</style>
|
||||
|
||||
<!-- Estilo para botones primarios Helldivers -->
|
||||
<style name="HelldiversButton.Primary" parent="HelldiversButton">
|
||||
<item name="android:background">@drawable/btn_helldivers_primary</item>
|
||||
<item name="android:textColor">@color/helldivers_yellow</item>
|
||||
<item name="android:textColor">@color/helldivers_white</item>
|
||||
<item name="android:textSize">16sp</item>
|
||||
<item name="android:fontFamily">sans-serif-medium</item>
|
||||
<item name="android:textAllCaps">true</item>
|
||||
@@ -47,7 +47,7 @@
|
||||
<!-- Estilo para botones secundarios -->
|
||||
<style name="HelldiversButton.Secondary" parent="HelldiversButton">
|
||||
<item name="android:background">@drawable/btn_helldivers_secondary</item>
|
||||
<item name="android:textColor">@color/helldivers_yellow</item>
|
||||
<item name="android:textColor">@color/helldivers_white</item>
|
||||
<item name="android:textSize">14sp</item>
|
||||
<item name="android:fontFamily">sans-serif-medium</item>
|
||||
<item name="android:textAllCaps">true</item>
|
||||
@@ -62,7 +62,7 @@
|
||||
|
||||
<!-- Estilo para texto de titulo -->
|
||||
<style name="HelldiversText.Title" parent="HelldiversText">
|
||||
<item name="android:textColor">@color/helldivers_yellow</item>
|
||||
<item name="android:textColor">@color/helldivers_white</item>
|
||||
<item name="android:textSize">20sp</item>
|
||||
<item name="android:fontFamily">sans-serif-condensed</item>
|
||||
<item name="android:textStyle">bold</item>
|
||||
|
||||
Reference in New Issue
Block a user