Autore Topic: Creazione TableLayout con Imagebutton da codice  (Letto 273 volte)

Offline peppemath

  • Nuovo arrivato
  • *
  • Post: 1
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Windows
Creazione TableLayout con Imagebutton da codice
« il: 09 Novembre 2014, 15:18:38 CET »
0
Ciao a tutti, sono nuovo con android e sto cercando di costruire la mia prima app.
Vorrei creare una nuova activity che è di tipo TableLayout che contenga degli imagebutton: vorrei che i miei button occupino tutta l'area disponibile; tutto questo via codice.
Per il momento sono riuscito a creare il mio layout usando il codice XML e tutto funziona correttamente

Codice (XML): [Seleziona]
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
   android:paddingBottom="@dimen/activity_vertical_margin"
   android:gravity="center"
   android:id="@+id/parentTableLayout"
   tools:context="it.peppemath.android.Activity_MultiImageButton">

    <TableRow
       android:background="@android:color/holo_red_light"
       android:layout_weight="1">
        <ImageButton
           android:layout_width="0dip"
           android:layout_height="match_parent"
           android:background="@android:color/transparent"
           android:layout_weight="1"
           android:scaleType="fitStart"
           android:src="@drawable/ic_launcher"
           android:id="@+id/imgBtn1"
           android:onClick="OnClick_ciccio"/>
    </TableRow>
    <TableRow
       android:background="@android:color/holo_purple"
       android:layout_weight="1">
        <ImageButton
           android:layout_width="0dip"
           android:layout_height="match_parent"
           android:text="button2"
           android:layout_weight="1"
           android:scaleType="fitCenter"
           android:src="@drawable/ic_launcher"
           android:id="@+id/imgBtn2" />
    </TableRow>

</TableLayout>

in questo caso una tabella con 2 righe ed 1 colonna (tutto funziona se aggiungo altre righe e/o colonne).

Il mio problema è trasformare tutto in codice Java; nella oncreate chiamo un metodo

Codice (Java): [Seleziona]
private void GenerateLayout( String layoutType)
    {
        int nRow = 2;
        int nCol = 1;

        TableLayout layout = (TableLayout)findViewById(R.id.parentTableLayout);

        for (int i = 0; i < nRow; i++) {
            TableRow row = new TableRow(this);
            row.setBackgroundColor( GetColor(i));

            TableLayout.LayoutParams parRow = new TableLayout.LayoutParams( 0, TableLayout.LayoutParams.MATCH_PARENT, 1f);
            row.setLayoutParams( parRow);

            for (int j = 0; j < nCol; j++) {
                ImageButton imgButton = new ImageButton(this);
                imgButton.setId( j + nCol*i);
                imgButton.setImageResource( R.drawable.ic_launcher);

                ViewGroup.LayoutParams parBtn = new ViewGroup.LayoutParams( 0, ViewGroup.LayoutParams.MATCH_PARENT);
                imgButton.setLayoutParams( parBtn);

                row.addView( imgButton);
            }
            layout.addView(row);
        }

        setContentView(layout);
    }

ma ho qualche problema/lacuna sull'utilizzo dei layoutparameters.
Qualcuno potrebbe darmi una mano?

Grazie

Offline Andre99

  • Utente junior
  • **
  • Post: 54
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Vodafone 875
  • Play Store ID:
    F. Andreuzzi
  • Sistema operativo:
    Linux Mint 16 Cinnamon
Re:Creazione TableLayout con Imagebutton da codice
« Risposta #1 il: 23 Dicembre 2014, 15:23:13 CET »
0
quale problema incontri? cioè, cosa c' è che non va  durante l' esecuzione?
Andre99
Trieste-12/12/1999
T-UI, Terminal Console Launcher: https://play.google.com/store/apps/details?id=ohi.andre.consolelauncher