Bonjour,
j'ai un petit problème, j'ai un bouton qui marche mais qui est invisible (caché). On peu appuyer dessus et le trigger se fait correctement, c'est juste qu'il ne s'affiche pas.
En fait ce que je fais, c'est que j'ai une classe "AndroidHarness" qui extends "Activity" et qui me sert à afficher des séquences en OpenGL (une partie jeu on va dire). Ensuite, j'ai une classe "GameSession" qui extends "AndroidHarness" (et donc "Activity") dans laquelle je met ce code :
On y voir un bouton que j'ajoute en overlay (pause). C'est ce bouton qui bug. En fait, une fois que cette classe ("GameSession") est instanciée, elle instancie une application OpenGL ("LevelContainer") et l'affiche via une "GLSurfaceView".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 public class GameSession extends AndroidHarness { private final static Logger logger = Logger.getLogger(GameSession.class .getName()); private Button pause; public GameSession() { appClass = "com.lesmobilizers.tehmoballizer.levels.LevelContainer"; logger.info("CHECK: appClass value applied..."); } @Override public void onCreate(Bundle savedInstanceState) { appClass = "com.lesmobilizers.tehmoballizer.levels.LevelContainer"; logger.info("CHECK: appClass value applied..."); super.onCreate(savedInstanceState); LayoutInflater inflater = getLayoutInflater(); View hud; hud = inflater.inflate(R.layout.hud, null); getWindow().addContentView(hud, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT)); // Implements the "Pause" button action this.pause = (Button) this.findViewById(R.id.pause); this.pause.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { Intent intent = new Intent(view.getContext(), Pause.class); startActivityForResult(intent, 0); } }); } public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { overridePendingTransition(R.anim.options_panel_top_enter, R.anim.options_panel_top_exit); Intent intent = new Intent(view.getContext(), Pause.class); startActivityForResult(intent, 0); } return false; } }
Avant que je procède à une restructuration de mon code, l'overlay marchait bien (on voyait le bouton). Mais depuis le ré-agencement, il a disparu (même si il marche encore).
Si quelqu'un pouvait m'indiquer d'où vient mon erreur, j'ai l'impression que tout bêtement, mon application OpenGL est affiché par dessus mon overlay :/
J'ai essayé de lancer la vue overlay depuis mon application OpenGL (pour qu'elle soit générée après) seulement ca m'a retourné une erreur qui disait en gros "une vue ne peut être ajoutée que depuis le thread original..." (ou quelque chose comme ca - j'peux mettre l'erreur sur demande mais j'pense pas que ça soit pertinent).
Partager