IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants graphiques Android Discussion :

Bouton invisible (mais qui marche)


Sujet :

Composants graphiques Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 43
    Par défaut Bouton invisible (mais qui marche)
    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 :

    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;
    	}
    }
    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".

    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).

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 43
    Par défaut
    N'hésitez pas à demander des précisions si vous pensez que le problème n'est pas assez clair...

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 334
    Par défaut
    Bonjour
    Je n'ai pas de solution à proposer, mais j'ai le même souci en utilisant une SurfaceView, le bouton est invisible mais on peut cliquer dessus.
    Par contre quant on retourne l'appareil et que l'affichage change, il ré-apparait.
    Curieusement, je n'avais pas ce problème alors que j’utilisais mon application sur Android 1.6, mais depuis que j'ai passé mon téléphone en version 2.3.7, mon application fait ce bug...

    Ci-dessous le layout concerné:
    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
    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/capture_layout"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >
     
        <SurfaceView
            android:id="@+id/surface"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" >
        </SurfaceView>
     
        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:padding="20px" >
     
            <ImageButton
                android:id="@+id/capture_b_photo"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerHorizontal="true"
                android:src="@drawable/photo" />
     
            <ImageButton
                android:id="@+id/capture_b_valid"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:src="@drawable/ok" />
     
            <ImageButton
                android:id="@+id/capture_b_annul"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:src="@drawable/cancel" />
        </RelativeLayout>
     
    </RelativeLayout>

Discussions similaires

  1. Balise dépréciée mais qui marche (<font>)
    Par laurentSc dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 11/02/2014, 23h53
  2. Réponses: 9
    Dernier message: 12/02/2013, 09h47
  3. Bouton qui marche, mais lien qui ne fonctionne pas
    Par webgaro dans le forum Balisage (X)HTML et validation W3C
    Réponses: 10
    Dernier message: 31/01/2013, 12h41
  4. Une erreur de syntaxe sous SqlServer? mais qui marche quand meme
    Par dzenakhra dans le forum Développement
    Réponses: 4
    Dernier message: 18/11/2008, 18h04
  5. Réponses: 2
    Dernier message: 04/06/2004, 11h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo