Example #1
0
 @Override
 public View getView(int position, View convertView, ViewGroup parent) {
   ContenedorVistas contenedor;
   // Si no se puede reciclar.
   if (convertView == null) {
     // Se infla el layout.
     convertView =
         LayoutInflater.from(contexto)
             .inflate(R.layout.fragment_imagenes_lista_item, parent, false);
     // Se obtienen las vistas de elemento.
     contenedor = new ContenedorVistas();
     contenedor.imgFoto = (ImageView) convertView.findViewById(R.id.imgFoto);
     contenedor.lblUsuario = (TextView) convertView.findViewById(R.id.lblUsuario);
     // Se guarda el contenedor en la propiedad tag de la vista del
     // elemento.
     convertView.setTag(contenedor);
   } else {
     // Si se puede reciclar, obtengo el contenedor de la vista
     // reciclada del elemento.
     contenedor = (ContenedorVistas) convertView.getTag();
   }
   // Se escriben los datos correspondientes en las vistas.
   Imagen imagen = datos.get(position);
   // contenedor.imgFoto.setImageUrl(imagen.getUrl(), cargadorImagenes);
   // Se muestra la imagen en el imageView con la librería Picasso, que
   // almacenará la imagen en caché de memoria y de disco con el tamaño
   // indicado.
   Picasso.with(contexto)
       .load(imagen.getUrl())
       .resize(anchoFoto, altoFoto)
       .into(contenedor.imgFoto);
   contenedor.lblUsuario.setText(imagen.getUsername());
   // Se retorna la vista del elemento para que se pinte.
   return convertView;
 }
  private void parseRespuesta(JSONObject respuesta, ArrayList<Imagen> datosAdaptador) {
    try {
      // Se parsea la respuesta para obtener los datos deseados.
      // Se obtiene cual debe ser la próxima petición para paginación.
      JSONObject paginationKeyJSONObject = respuesta.getJSONObject(Instagram.PAGINACION_KEY);
      siguientePeticionURL = paginationKeyJSONObject.getString(Instagram.SIGUIENTE_PETICION_KEY);
      // Se obtiene el valor de la clave "data", que correponde al
      // array de datos.
      JSONArray dataKeyJSONArray = respuesta.getJSONArray(Instagram.ARRAY_DATOS_KEY);
      // Por cada uno de los elementos del array de datos.
      for (int i = 0; i < dataKeyJSONArray.length(); i++) {
        // Se obtiene el elemento, que es un JSONObject.
        JSONObject elemento = dataKeyJSONArray.getJSONObject(i);
        // Si el tipo de elemento indica que es una imagen.
        if (elemento
            .getString(Instagram.TIPO_ELEMENTO_KEY)
            .equals(Instagram.TIPO_ELEMENTO_IMAGEN)) {
          // Se crea un objeto modelo.
          Imagen imagenInstagram = new Imagen();
          // Se obtiene el usuario.
          JSONObject usuario = elemento.getJSONObject(Instagram.USUARIO_KEY);
          // Se obtiene del usuario el nombre de usuario y se
          // guarda en el objeto modelo.
          imagenInstagram.setUsername(usuario.getString(Instagram.NOMBRE_USUARIO_KEY));
          // Se obtiene la imagen.
          JSONObject imagen = elemento.getJSONObject(Instagram.IMAGEN_KEY);
          // Se obtiene la url de la imagen en resolución
          // estándar y se guarda en el objeto modelo.
          imagenInstagram.setUrl(
              imagen.getJSONObject(Instagram.RESOLUCION_ESTANDAR_KEY).getString(Instagram.URL_KEY));
          // Se obtiene la url de la miniatura de la imagen y se
          // guarda en el objeto modelo.
          imagenInstagram.setThumbnail(
              imagen
                  .getJSONObject(Instagram.RESOLUCION_MINIATURA_KEY)
                  .getString(Instagram.URL_KEY));
          // Se añade el objeto modelo a la lista de datos
          // para el adaptador.
          datosAdaptador.add(imagenInstagram);
        }
      }

    } catch (JSONException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
  }