2010-12-29 7 views
1

Im Implementieren von tablailayout dynamisch Code unten.So legen Sie Schaltflächenhintergrundbild fest, um Inhalt dynamisch in ein Tabellenlayout zu überführen

private void showCowsTblField() { 
    for (int row = 0; row < numberOfRowsInField - 1; row++) { 
     TableRow tableRow = new TableRow(this); 
     tableRow.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, 
       LayoutParams.WRAP_CONTENT)); 
     for (int column = 0; column < numberOfColumnsInField - 1; column++) { 
      LayoutParams layoutParams = new LayoutParams(
        LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
      if (column == 0) { 
       textSno[row][column].setLayoutParams(layoutParams); 
       layoutParams.setMargins(0, 0, 0, 0); 
       tableRow.addView(textSno[row][column]); 
      } else { 
       blocks[row][column].setLayoutParams(layoutParams); 
       layoutParams.setMargins(1, 1, 1, 1); 
       tableRow.addView(blocks[row][column]); 
      } 
      tableRow.setBackgroundResource(R.drawable.bar_1); 
     } 
     tblCows.addView(tableRow, new TableLayout.LayoutParams(
       LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); 
    } 
} 

hier Block ist eine Klasse erweitert Button-Klasse, in dieser Klasse iam Einstellung Hintergrundbild als

this.setBackgroundResource(R.drawable.edit_button); 

Hier Problem ist die Schaltfläche Hintergrundbild Größe (Höhe) ändert passen Höhe TableRow . was nicht gut aussieht.

Wie kann ich Button Hintergrundbild auf tatsächliche Größe (wrapcontent) in der Tabellenzeile festlegen.

Bitte lassen Sie mich wissen .... Dank .........

Antwort

0

Ich habe den folgenden Code in meiner Klasse versucht; der sich Schaltfläche Klasse

this.setMaxHeight(26); 
this.setMaxWidth(54); 

gelöst Ausgabe :)

1

sehen, ob das hilft - http://developer.android.com/reference/android/widget/ImageView.ScaleType.html

Sie können es nur, wenn Sie verwenden http://developer.android.com/reference/android/widget/ImageButton.html

Ihr Code muss in etwa so aussehen:

class MyButton extends ImageButton{...} 


this.setScaleType(scaleType); 
+0

Ich habe versucht, einen anderen Weg this.setMaxHeight (26). \t \t this.setMaxWidth (54); Problem gelöst ... auf jeden Fall danke ..... – praveenb

+0

Ich glaube nicht, dass das Festlegen hartcodierter Dimensionen eine gute Übung ist. – fiction

+0

hmm ... yeah hast recht ... für jetzt möchte ich weiter zur nxt task ... anstatt für diese Logik etwas mehr Zeit aufzuwenden .... – praveenb