2011-09-30 3 views
1

Je suis en train de créer une table d'images 8x5 comme:TableLayout ne rétrécit pas toutes les images

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    TableLayout table = new TableLayout(this); 

    table.setStretchAllColumns(true); 
    table.setShrinkAllColumns(true); 

    for(int i = 0; i < 6; i++){  
     TableRow card = new TableRow(this); 
     card.setGravity(Gravity.CENTER); 

     for(int j = 0; j < 5; j++){ 
      TableRow.LayoutParams paramsCard = new TableRow.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
      paramsCard.setMargins(CARDS_MARGIN,CARDS_MARGIN,CARDS_MARGIN,CARDS_MARGIN); 
      ImageView imgCard = new ImageView(this); 
      imgCard.setImageResource(R.drawable.dos); 
      imgCard.setLayoutParams(paramsCard); 
      card.addView(imgCard); 
     } 
     table.addView(card); 
    } 
    setContentView(table); 
    table.setBackgroundDrawable(getResources().getDrawable(R.drawable.background)); 
} 

Mais dans la dernière ligne, je reçois les images plus petites, pourquoi? Je apparemment mis

table.setStretchAllColumns(true); 
    table.setShrinkAllColumns(true); 

enter image description here

http://dl.dropbox.com/u/3340490/device-2011-10-01-002223.png

+0

Est-ce que la même chose se produit si vous chargez cette disposition à partir d'un fichier XML? –

+0

Je dois le faire par programme. Voulez-vous dire si je gonfle le TableLayout? – Dayerman

+0

oui parce que la création de la mise en page complètement à travers le code a parfois des résultats étranges –

Répondre

0

Finalement j'utilise un LinearLayout avec les poids fixés à 1 pour ajuster automatiquement à la taille de l'écran. TableLayout ne fonctionne pas très bien pour ajuster les images.

0

Je parie que vous, votre TableView est dans un LinearLayout ou quelque chose qui ne déborde pas de l'écran disponible - de sorte que les dernières vues sont réduites d'avoir Tout peut-il y être - peut-être ... Pouvez-vous vous assurer que votre TableView est dans un ScrollView et voir si cela se produit?

-serkan

+0

Comme vous pouvez le voir sur le tableau TableLayout table = new TableLayout (this); Ma disposition principale est un TableLayout, pas un LinearLayout. – Dayerman

+0

Oui, pouvez-vous le mettre dans un ScrollView et essayer? – serkanozel

+0

Probablement travailler, mais je ne veux pas utiliser un ScrollView. – Dayerman

0

Si u ont donné la marge ou le rembourrage à la mise en page externe qui est parent du TableLayout, puis mettez-le. Cela se produira parfois juste parce que vous avez donné un peu de marge et un peu de remplissage à la disposition Parent du TableLayout. J'espère que ça va vous aider. Merci.

Questions connexes