B4A Library [Library] B4aGridView v3.80

lonleystar

Well-Known Member
Licensed User
Longtime User
Hi all, i just uploaded the b4aGridView 2.60 fixed few bugs.

Now the space betwen the items is perfect.

I also add :

ClearCache this will delete the entire cache created before
and
CreateCache

Examples:

GridView.CreateCache = "Your Folder Name"

this will create a cache in SDCARD ( Android/data/Your Folder Name/cache/.thumbs )


B4X:
    GridView.Initialize("GridView")
   
    Activity.AddView(GridView,0dip,0dip,100%x,100%y)

    GridView.CreateCache = ".it.giuseppe.salvi"
   
    GridView.ItemWidth=200dip
    GridView.ItemHeight=200dip
    GridView.HorizontalSpacing=10dip
    GridView.VerticalSpacing=10dip
    GridView.NumColumns=3'GridView.AUTO_FIT
    GridView.ColumnWidth=GridView.ItemWidth
    GridView.StretchMode=GridView.ColumnWidth
    GridView.Gravity=Gravity.CENTER

    GridView.PopulateGridView(File.DirRootExternal,"Images2")
 

lonleystar

Well-Known Member
Licensed User
Longtime User
Hi guys, I added

PopulateGridViewFromWeb

Now u can populate GridView also from web.

Just Download the new library v2.70



B4X:
Sub Globals
Dim GridView As B4AGridView
Dim l1 As Label
Dim s() As String

End Sub

Sub Activity_Create(FirstTime As Boolean)
    Activity.LoadLayout("1")
    GridView.Initialize("GridView")

    Activity.AddView(GridView,0dip,0dip,100%x,100%y)

    GridView.CreateCache = ".it.giuseppe.salvi"
    GridView.Animation=True
    GridView.ItemWidth=200dip
    GridView.ItemHeight=200dip
    GridView.HorizontalSpacing=10dip
    GridView.VerticalSpacing=10dip
    GridView.NumColumns=3'GridView.AUTO_FIT
    GridView.ColumnWidth=GridView.ItemWidth
    GridView.StretchMode=GridView.ColumnWidth
    GridView.Gravity=Gravity.CENTER
    Activity.AddMenuItem("Add Image","a")
    Activity.AddMenuItem("Add Image At","b")
    Activity.AddMenuItem("Populate From Disk","c")
    Activity.AddMenuItem("Populate From Web","d")
    Activity.AddMenuItem("Clear Cache","e")
    Activity.AddMenuItem("Exit","f")
  
    s = Array As String("https://lh3.googleusercontent.com/-rrFnVC8xQEg/URqufdrLBaI/AAAAAAAAAbs/s69WYy_fl1E/s1024/Chess.jpg","http://www.hdwallpapers3d.com/wp-content/uploads/abstract-wallpaper1.jpg","http://www.walldoze.com/static/wallpaper/1920x1200/hd-wallpapers-wide-war-desktop-background-wallpaper-1920x1200-wallpaper.jpg","https://lh6.googleusercontent.com/-55osAWw3x0Q/URquUtcFr5I/AAAAAAAAAbs/rWlj1RUKrYI/s1024/A%252520Photographer.jpg","https://lh4.googleusercontent.com/--dq8niRp7W4/URquVgmXvgI/AAAAAAAAAbs/-gnuLQfNnBA/s1024/A%252520Song%252520of%252520Ice%252520and%252520Fire.jpg","https://lh5.googleusercontent.com/-7qZeDtRKFKc/URquWZT1gOI/AAAAAAAAAbs/hqWgteyNXsg/s1024/Another%252520Rockaway%252520Sunset.jpg","https://lh6.googleusercontent.com/-9lzOk_OWZH0/URquoo4xYoI/AAAAAAAAAbs/AwgzHtNVCwU/s1024/Frantic.jpg","https://lh6.googleusercontent.com/-74Z5qj4bTDE/URqu6LSrJrI/AAAAAAAAAbs/XzmVkw90szQ/s1024/Orchid.jpg","https://lh5.googleusercontent.com/-GoUQVw1fnFw/URquv6xbC0I/AAAAAAAAAbs/zEUVTQQ43Zc/s1024/Kauai.jpg")

End Sub

Sub a_Click

GridView.AddImage(File.DirAssets,"a.jpg")

End Sub

Sub b_Click

GridView.AddImageAt(1,"","a.jpg")

End Sub

Sub c_Click

GridView.PopulateGridView(File.DirRootExternal,"Images2")

Activity.Title = "Items From Disk in GridView = " & GridView.Length

End Sub

Sub d_Click

GridView.PopulateGridVieFromWeb(s)

Activity.Title = "Items From Web in GridView = " & GridView.Length

End Sub

Sub e_Click

GridView.ClearCache

End Sub

Sub f_Click
  
    ExitApplication

End Sub

Sub Activity_Resume
End Sub

Sub Activity_Pause (UserClosed As Boolean)
End Sub

Sub GridView_ItemLongClick(Position As Int, Value As Object)
  
    ExitApplication

End Sub

Sub GridView_ItemClick(Position As Int, Value As Object)  
      Msgbox(Value, "")
End Sub

Sub GridView_ItemSelected(Position As Int, Value As Object)

    Activity.Title = "Items in GridView = " & GridView.Length&" -- Position =" & Position
  
End Sub
 

Ferdari

Active Member
Licensed User
Longtime User
Hi, thanks for the Lib

How do you order the gridview, im using PopulateFromWeb, my server sends a random ordered array of images, but GridView Always reorder it alphabetically,
How do i change to load gridview as server do, Random?

Thanks again
 

Ferdari

Active Member
Licensed User
Longtime User
one of my user get this error


B4X:
java.lang.NoSuchMethodError: android.widget.GridView.getColumnWidth
at it.giuseppe.salvi.GridViewActivity.getColumnWidth(GridViewActivity.java:275)
at ferdari.goodpaper.main._activity_create(main.java:321)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:538)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:174)
at ferdari.goodpaper.main.afterFirstLayout(main.java:98)
at ferdari.goodpaper.main.access$100(main.java:16)
at ferdari.goodpaper.main$WaitForLayout.run(main.java:76)
at android.os.Handler.handleCallback(Handler.java:618)
at android.os.Handler.dispatchMessage(Handler.java:123)
at android.os.Looper.loop(SourceFile:351)
at android.app.ActivityThread.main(ActivityThread.java:3841)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:538)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:969)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:727)
at dalvik.system.NativeStart.main(Native Method)

Android 2.3.3 - 2.3.71

ONE TOUCH 4007X

Do you know what happen? no other devices tested happen this.
 

Ferdari

Active Member
Licensed User
Longtime User
I tried using the lib on android 2+ and its not working, simply app cant open with error:
B4X:
java.lang.NoSuchMethodError: android.widget.GridView.getColumnWidth
but in android 4+ there are no problems, can you update the requirements, only working on android 4+
 

Shahid Saeed

Active Member
Licensed User
Longtime User
I am trying to load images from web through a JSON file.

When I am applying the code below; it only shows the last image?

B4X:
Dim parser As JSONParser
pasrser.Initialize(json)

Dim root As Map = parser.Nextobject
Dim Pictures As List = root.Get("Pictures")
For each pictureURL As Map In Pictures
Dim URL As String = pictureURL.Get("url")

s = Array As String(URL)
Next
GridView.PopulateGridViewFromWeb(s)
 
Last edited:

Shahid Saeed

Active Member
Licensed User
Longtime User
Hi Shahid Saeed, U r right it has many bugs but till tommorrow I'll upload the new GridView, I'm testing it and till now I dint get any error I'll also make a movie so every body see how it work.

Since you are working on an update; can you also try possibility of adding Picture Title for Each picture? e.g at the bottom of each picture could be a text field?
 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…