Spanish Imagen en xnGrid

Descartex

Well-Known Member
Licensed User
Longtime User
Muy buenas a tod@s!!!

El caso es que tengo unas escudos en PNG en el servidor del que saco los datos de mi consulta para rellenar los datos del xnGrid.
La duda es... como cargo esa imagen que esta "fuera" de mi dispositivo, mediante una URL??
Una vez la tenga cargada en el BitMap que llamo Escudo, tendría que añadirla al xnGrid del modo siguiente, no?
cgrid.GetColumn(1).RowIconPut(m.Get("club"),Escudo)

Un saludo!!!
 

aviario

Active Member
Licensed User
Longtime User
Hola, cuando configuras la grid tienes que decirle que va a llevar una imagen

Te pongo un ejemplo

el File.DirAssets lo tienes que cambiar por la url de donde descargas las imagenes

bmp(0).Initialize ( File.DirAssets, "borrar24.png" )
bmp(1).Initialize ( File.DirAssets , "nuevo24.png" )
cc1(3).Initialize2 ( "Borrar" , "Campo4" , 70dip , Gravity.CENTER_HORIZONTAL+Gravity.CENTER_VERTICAL)
cc1(3).HeaderGravity = Gravity.CENTER_VERTICAL + Gravity.CENTER_HORIZONTAL
cc1(3).RowIconPut("B",bmp(0))
cc1(3).RowIconPut("N",bmp(1))
cc1(3).RowIconTop = 2dip
cc1(3).RowIconLeft = 20dip
cc1(3).SetTypeImage
Cgrid1.ColAppend ( cc1(3) )

En este ejemplo puede tener dos imagenes dependiendo del valor que le pongamos a la columna si
es "B" pone el bmp(0) y si es "N" poene el bmp(1)

un saludo
Paco
 

Descartex

Well-Known Member
Licensed User
Longtime User
Muy buenas, aviario!!!
En primer lugar, agradecerte la respuesta.
Probando el ejemplo, funciona con imágenes que tengo en el dispositivo, pero al substituir File.DirAssets por la url, me tira un error, puesto que me añade a la url una "/" al inicio, con lo cual no encuentra la imagen...

Un saludo
 

Descartex

Well-Known Member
Licensed User
Longtime User

Descartex

Well-Known Member
Licensed User
Longtime User
Sigo sin poder mostrar la imagen en la casilla del xngrid...

tengo este código, donde ImageView1 está correctamente cargado, puesto que si lo añado al activity, se ve la imagen que necesito.
B4X:
  Cc(3).Initialize2 ( "Borrar" , "Campo4" , 70dip , Gravity.CENTER_HORIZONTAL+Gravity.CENTER_VERTICAL)
            Cc(3).HeaderGravity = Gravity.CENTER_VERTICAL + Gravity.CENTER_HORIZONTAL
            Cc(3).RowIconPut(m.GetInt("equipo"),ImageView1.Bitmap)
            Cc(3).SetTypeImage
            cgrid.ColAppend ( Cc(3) )

He probado con multiples metodos, como el de Erel, pero el que más sencillo me parece es con el de Picasso.
Seguro que es una tontería y que lo tengo delante de los morros, pero no lo veo y me estoy empezando a obcecar mucho.

Un saludo, gracias.
 

aviario

Active Member
Licensed User
Longtime User
Hola, solo vas a cargar una imagen o varias ?

Recuerda que el RowIconPut(tiene que llevar un varlor para que te carge la imagen)

Si solo vas a cargar una imagen con este codigo te lo hace

Dim Bmp as List
Bmp.Initialize
bmp.Add(ImageView1.Bitmap)

' Esto en la grid
cc(1).RowIconPut("B",bmp.Get(0))
' Esto cuando se carga la grid
Cgrid.RowAppend ( Array As String (campo1,"B") ) ' Como puedes ver le paso el valor "B" que es el que difino en
la configuración de la Grid

Sin son varias imagenes las tendrias que cargar en la lista y luego cargarlas en la grid y cada una con un valor diferente para que luego carge la imagen que le corresponda
 

Descartex

Well-Known Member
Licensed User
Longtime User
Muchas gracias de nuevo, aviario...
Tu solucion para varias imágenes es estupenda, puesto que en mi caso, el nombre del fichero de imagen va asociado al número de club, con lo cual, acceder a la lista del modo bmp(club-1) ahorra mucho trabajo.

Al final el problema estaba en una tontería, intentaba asignar un valor de una imagen que aun estaba en carga, con lo cual, me tiraba un error de puntero a null (evidente, si no esta cargada, esta vacia aún), pero no lo veia.

Problema resuelto.

Muchas gracias, un saludo.
 
Top