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

Android Discussion :

un tableau d'images


Sujet :

Android

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Novembre 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Novembre 2009
    Messages : 46
    Points : 33
    Points
    33
    Par défaut un tableau d'images
    voila,je cherche à réaliser un puissance 4 pour mon archos.
    mais je bloque sur l 'affichage des cases sous forme de tableau...
    voila le 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
     
     
    package my.android;
     
    import android.app.Activity;
    import android.os.Bundle;
    import android.widget.TableLayout;
    import android.widget.TableRow;
     
    public class Test2Activity extends Activity {
     
    	@Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            TableRow.LayoutParams params = new TableRow.LayoutParams(100, 100);
            TableLayout tl=new TableLayout(this);
            for(int i=0;i<7;i++)
            {
            	TableRow tr =new TableRow(this);
            	for(int j=0;j<6;j++)
            	{
            		Image image = new Image(this);
            		image.setLayoutParams(params);
            		tr.addView(image, j);
            	}
            	tl.addView(tr, i);
            }
            setContentView(tl);
        }
    }
    ainsi que le code de ma classe Image:


    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
     
     
    package my.android;
     
    import android.content.Context;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.graphics.Canvas;
    import android.graphics.Color;
    import android.graphics.Paint;
    import android.view.View;
     
    public class Image extends View{
     
    	private Bitmap image;
     
    	public Image(Context context)
    	{
    		super(context);
    		image = BitmapFactory.decodeResource(context.getResources(), R.drawable.cases);
    	}
     
    	@Override
        protected void onDraw(Canvas canvas)
    	{
    		Paint paint = new Paint();
    		paint.setColor(Color.WHITE);
    		paint.setAntiAlias(true);
     
    		canvas.drawBitmap(image, 0, canvas.getHeight() / 8, paint);
    	}
     
    }

    merci d'avance pour vos suggestions

  2. #2
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    1. Pourquoi ne pas utiliser d'ImageView ?
    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
     
        ImageView[] cells;
     
        public int getCellIndex(int x, int y)
        {
            return NUM_CELLS * y + x;
        }
     
        public void onCreate(...)
        {
            TableLayout table = (TableLayout) findViewById(R.id.my_table);
     
            this.cells = new ImageView[NUM_ROWS*NUM_CELLS];
            for (int y = 0; (y < NUM_ROWS); ++y) {
                TableRow tr = new TableRow(this);
                for (int x = 0; (x < NUM_CELLS); ++x) {
                   int idx = getCellIndex(x,y);
                   this.cells[idx] = new ImageView(this);
                   this.cells[idx].setDrawableResource(R.drawable.empty_cell);
                   tr.addView(this.cells[idx]);
                }
                table.addView(tr);
            }
        }
    }
     
    public void setCellColor(int x, int y, int v)
    {
        int idx = getCellIdx(x,y);
        int resid;
        switch (v) {
          case RED: resid = R.drawable.red_cell; break;
          case YELLOW: resid = R.drawable.yellow_cell; break;
          default: resid = R.drawable.empty_cell; break;
        }
        this.cells[idx].setDrawableResource(resid);
    }
    2. Pourquoi ne pas construire le layout complet dans le XML, et juste référence les cases par leur ID ?
    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
     
    public void setCellColor(int x, int y, int v)
    {
        int id = getCellId(x,y);
        int resid;
        switch (v) {
          case RED: resid = R.drawable.red_cell; break;
          case YELLOW: resid = R.drawable.yellow_cell; break;
          default: resid = R.drawable.empty_cell; break;
        }
        ((ImageView)findViewById(id)).setDrawableResource(resid);
    }
    public int getCellId(int x, int y)
    {
        StringBuilder cellIdName = new StringBuilder(16);
        cellIdName.append("cell_").append(x).append('_').append(y);
        return R.id.class.getDeclaredField(cellIdName.toString()).getInt(null);
    }
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

Discussions similaires

  1. Tableau d' images, est-ce que c'est possible ?
    Par awane dans le forum WinDev
    Réponses: 8
    Dernier message: 27/11/2006, 20h10
  2. Faire un tableau d'images
    Par Battosaiii dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 19/06/2006, 10h56
  3. tableau et image
    Par casafa dans le forum Langage
    Réponses: 2
    Dernier message: 27/04/2006, 20h52
  4. [HTML] [Débutant] Tableau et images
    Par skandas dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 07/06/2005, 01h01
  5. Tableau et image
    Par jean78000 dans le forum C++Builder
    Réponses: 3
    Dernier message: 01/11/2004, 12h27

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