Avatar of %s

by

TableLayout

18 julio, 2011 in General, Layouts

La semana pasada me vi en un dilema, debido a una solicitud de un diseño algo peculiar en mi app, resulta que tenia que alojar dentro de una activity cierto contenido almacenado en un array, mi principal problema era el espacio ya que mi diseño no colaboraba mucho con esto, otro problema era que el contenido era dinamico por que el espacio se tendria que agrandar deacuerdo a la cantidad de items que fueran apareciendo, cada item tenia tres datos (grupo al que pertenecia, icono y url) , mi primera opcion fue una lista , pero debido a que debia agrupar los items en dos columnas y cada item tenia una url independiente , esto no me ayudo , tal vez se podria, no he investigado (si o hacen me avisan para tener mas opciones),  bueno entonces opte por usar tablelayout, es un tipo de layout tipo tabla jeje como su nombre lo menciona al cual puedes adicionar tablerows ( filas ) ya sea por diseño (xml) o por codigo java, en mi caso lo hice por codigo java de manera que lo use de la siguiente forma.

adiciona dos tablelayouts a mi pantalla en posicion horizontal y por codigo iba adicionando filas , dentro de las filas adicionaba ImgenView y a cada imagen View le asignaba su url correspondiente para asi al darle click cargara el enlace que le corresponde al item, y como el contenido es dinamico las filaes se adiciona dinamicamente he aqui el codigo usado

// group 1 y group 2 son los id que representan a mis tablelayout

group1=(TextView) view_layout.findViewById(R.id.group1);

group2=(TextView) view_layout.findViewById(R.id.group2);

// result  es mi array hago un blucle que me recorras desde 0 hasta el final del contenido de mi array – 1

for (int f=0; f<=result.size() – 1; f++) {

final Promotion n=(Promotion)result.get(f);
 // aqui creo mi table row(fila) dinamicamente 
 
         TableRow tr = new TableRow(app.mContext); 
 
// aqui creo mi imagenview que ira dentro de mi fila creada 
 
             ImageView b = new ImageView (app.mContext);
 
// aqui asigno una imagen a mi imagenview creado , la funciona DonwloadImagen es una funcion que me permite descargar la //imagen , esto por que mi imagen la estoy leyendo desde una direccion url , por lo que primero tengo que descargarla antes de //asignarla
 
             b.setImageBitmap(DownloadImage(n.getIcon()));
      
// esta parte le indico que es lo que debe hacer cuando le doy click en mi imagen 
// estoy creando un intent para que cargue el url que tiene mi item en mi cas alguna direccion web (http://www.google.com por //ejemplo)
 
             b.setOnClickListener(new OnClickListener() {
 
                  @Override
                  public void onClick(View v) {
                    String url = n.getUrl();
                    Intent i = new Intent(Intent.ACTION_VIEW);
                    i.setData(Uri.parse(url));
                    app.mContext.startActivity(i);
 
                        }
                  });
               
               // luego solo adiciona a mi fila la imagen y las dimenciones
 
                 tr.addView(b, 30,30);              
 
              // y al final adiciona a mi tablelayout la fina con todo y su contendio
 
                 tgroup.addView(tr);           
 
   }
 
 
 
Es un codigo simple y util, a mi me ayudo mucho, espero les sirva en algun momento, deben haber muchas otras formas de hacerlo, si saben de alguna compartanla :D ,  no solo pueden crear imagen, pueden probarlo con otros widgets, nos vemos :D
 

Leave a reply

You must be logged in to post a comment.