Partage
  • Partager sur Facebook
  • Partager sur Twitter

[android] SurfaceView carré

width=fill_parent et height = width

    10 août 2012 à 13:24:38

    Bonjour à tous.
    Comme beaucoup, je me frotte à la programmation android, et pour être honnête, c'est plus difficile à gérer que tout ce que j'ai fais jusqu'à maintenant...(Swing, Tkinter, SDL, NDS, Ti-92 et j'en passe).

    Voici donc mon problème:
    Je suis en train de faire un snake avec une SurfaceView et un thread dédié à l'affichage(plateau de 16x16 cases).
    La surfaceView ne prend pas tout l'écran, elle fait partie d'un LinearLayout qui contient la surfaceView, un textView et 3 boutons.

    Ce que j'aimerais, c'est que la hauteur de ma SurfaceView soit la même que sa largeur qui prend toute la largeur de l'écran. Mais comment faire? j'ai mis width="fill_parent" mais height je ne peux pas le mettre ="width".

    Je pense donc changer dans le code java de ma surfaceView, avec qqch du genre: setHeight(maSurfaceView.getWidth()) mais ce n'est pas si simple.

    Volontiers si vous savez comment faire ou déjà une simple piste!

    je mets le code du layout xml:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >
        
        <TextView 
            android:id="@+id/aj1LblMess"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="Pomme mangées : 0"
            android:textColor="#00FF80"
            android:textSize="18dp"
            android:padding="8dp"
            android:textStyle="bold"
            android:gravity="center"
            />
        
        <com.progametion.multiSnake.JeuView
            android:id="@+id/fondJeu1"
            android:layout_width="fill_parent"
            android:layout_height="240dp"/>
        
        <LinearLayout 
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">
    	    <Button 
    	        android:id="@+id/bouGauche"
    	        android:layout_weight="40"
    	        android:layout_width="wrap_content"
    	        android:layout_height="wrap_content"
    	        android:text="Gauche"
    	        android:layout_margin="2dp"
    	        />
    	    <Button 
    	        android:id="@+id/bouDroite"
    	        android:layout_weight="40"
    	        android:layout_width="wrap_content"
    	        android:layout_height="wrap_content"
    	        android:text="Droite"
    	        android:layout_margin="2dp"
    	        />
    	    <Button 
    	        android:id="@+id/bouStart"
    	        android:layout_weight="20"
    	        android:layout_width="wrap_content"
    	        android:layout_height="wrap_content"
    	        android:text="Start"
    	        android:layout_margin="2dp"
    	        />
        </LinearLayout>
    
    </LinearLayout>
    
    • Partager sur Facebook
    • Partager sur Twitter
      15 août 2012 à 22:49:41

      Je post pour afficher quelle solution j'ai trouvé à mon problème. Je ne mets cependant pas mon sujet en résolu parce que je n'ai pas pu faire ce que je souhaitais à la base.

      j'ai laissé ma textView avant la SurfaceView et ma SurfaceView prend ensuite fill_parent en largeur et en hauteur, donc toute la place qui reste jusqu'en bas. Ensuite j'ai fabriqué mes boutons en affichant des Bitmap avec une image de bouton(appui et relaché) et un onTouchListener est capable de capter une action DOWN dans la zone de chaque bouton.

      je t'aurai android, je t'aurai!
      • Partager sur Facebook
      • Partager sur Twitter
        15 août 2012 à 22:53:24

        Bonjour,

        Pourquoi ne pas récupérer la largeur de l'écran de ton terminal et le placer comme "height" au niveau du java ?
        • Partager sur Facebook
        • Partager sur Twitter
        Si vous voulez me retrouver, rendez-vous sur ZesteDeSavoir.
          16 août 2012 à 13:58:22

          bonjour!

          Citation : moi

          Je pense donc changer dans le code java de ma surfaceView, avec qqch du genre: setHeight(maSurfaceView.getWidth()) mais ce n'est pas si simple.



          J'ai cherché un peu, testé 2-3 trucs du genre sans réussir. Je me suis dit: bon y a pas d'info clair sur le net la dessus, alors je poste sur le forum. Après, j'ai eu l'idée de faire toute mon interface sur un bitmap et je suis très content du résultat(Je maîtrise enfin le placement de mes éléments... et je m'adapte bien à la taille des différents écrans.

          Mais si tu arrives à faire un code qui fonctionne(je pense que c'est possible), ça m'intéresse volontiers!

          Merci en tout cas de t'être intéressé au problème!
          • Partager sur Facebook
          • Partager sur Twitter

          [android] SurfaceView carré

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown