B4A Library [Library] B4aGridView v3.80

Discussion in 'Additional libraries, classes and official updates' started by lonleystar, Jan 8, 2013.

Similar threads

B4A Library B4AMediaBucket v1.20
B4A Library B4APhotoPager v3.85
B4A Tutorial Supporting multiple screens - tips and best practices
B4A Library Oblique
B4A Library Frisson
  1. lonleystar

    lonleystar Well-Known Member Licensed User



    Hi guys, B4AGridView is updated to v3.70.


    1: GridView Demo
    1: Library
    1: PDF Explanations



    A big thanks goes to ( Sergey Tarasevich - author of Universal Image Loader )

    A thanks is always appreciated.


    B4AGridView
    Author:
    Giuseppe Salvi
    Version: 3.7

    • Fields:
      • Default As Typeface
        The default NORMAL typeface object.
      • Default_Bold As Typeface
        The default BOLD typeface object.
      • Monospace As Typeface
        The NORMAL style of the default monospace typeface.
      • Sans_Serif As Typeface
        The NORMAL style of the default sans serif typeface.
      • Serif As Typeface
        The NORMAL style of the default serif typeface.
      • Style_Bold As Int
        The default BOLD style int.
      • Style_Bold_Italic As Int
        The default BOLD ITALIC style int.
      • Style_Italic As Int
        The default ITALIC style int.
      • Style_Normal As Int
        The default NORMAL style int.
      Methods:
      • LoadFontFromAssets (file As String) As Typeface
        Create a new typeface from the specified font data from assets.
      • LoadFontFromFile (file As String) As Typeface
        Create a new typeface from the specified font data from sdcard.

    • Fields:
      • Center As ScaleType
        Center the image in the view, but perform no scaling.
      • Center_Crop As ScaleType
        Scale the image uniformly (maintain the image's aspect ratio) so that both dimensions (width and height) of the image
        will be equal to or larger than the corresponding dimension of the view (minus padding).
      • Center_Inside As ScaleType
        Scale the image uniformly (maintain the image's aspect ratio) so that both dimensions (width and height) of the image
        will be equal to or less than the corresponding dimension of the view (minus padding).
      • Fit_Center As ScaleType
        Scale the image using CENTER.
      • Fit_End As ScaleType
        Scale the image using END.
      • Fit_Start As ScaleType
        Scale the image using START.
      • Fit_XY As ScaleType
        Scale the image using FILL.
      • Matrix As ScaleType
        Scale using the image matrix when drawing.

    • Fields:
      • CARDS As Int
        CARDS Effect = 2
      • CURL As Int
        CURL Effect = 3
      • FADE As Int
        FADE Effect = 12
      • FAN As Int
        FAN Effect = 9
      • FLIP As Int
        FLIP Effect = 5
      • FLY As Int
        FLY Effect = 6
      • GROW As Int
        GROW Effect = 1
      • HELIX As Int
        HELIX Effect = 8
      • PUZZLE As Int
        PUZZLE Effect = 16
      • REVERSE_FLY As Int
        REVERSE_FLY Effect = 7
      • REVERSE_TWIRL As Int
        REVERSE_TWIRL Effect = 15
      • SLIDE_IN As Int
        SLIDE_IN Effect = 14
      • STANDARD As Int
        Standard Effect = 0
      • TILT As Int
        TILT Effect = 10
      • TWIRL As Int
        TWIRL Effect = 13
      • WAVE As Int
        WAVE Effect = 4
      • ZIPPER As Int
        ZIPPER Effect = 11

    • Fields:
      • Text_Bottom_Inside As GravityEnum
        Text Bottom InSide
      • Text_Bottom_OutSide As GravityEnum
        Text Bottom OutSide
      • Text_Center_Inside As GravityEnum
        Text Center InSide
      • Text_Top_Inside As GravityEnum
        Text Top InSide
      • Text_Top_OutSide As GravityEnum
        Text Top OutSide

    • Fields:
      • AUTO_FIT As Int
        Creates as many columns as can fit on screen.
      • NO_STRETCH As Int
        Disables stretching.
      • STRETCH_COLUMN_WIDTH As Int
        Stretches the spacing between columns.
      • STRETCH_SPACING As Int
        Stretches columns.
      • STRETCH_SPACING_UNIFORM As Int
        Stretches the spacing between columns.

    • Fields:
      • Compress_Format_JPG As CompressFormat
        Compression Format JPG
      • Compress_Format_PNG As CompressFormat
        Compression Format PNG

    • PhotoGridView
      Events:
      • ItemClick (Position As Int, Value As Object)
      • ItemLongClick (Position As Int, Value As Object)
      • Ready ( As )
      • ShareItemClick (Value As Object)
      Methods:
      • AddImage (dir As String, file As String)
        Add an image from sdcard or AssetsDir at the end of the GridView
      • AddImageAt (index As Int, dir As String, file As String)
        Add an image from sdcard or AssetsDir to the desired position in the GridView
      • AddImageFromWeb (address As String)
        Add an image from web at the end of the GridView
      • AddImageFromWebAt (index As Int, address As String)
        Add an image from Web to the desired position in the GridView
      • AddThisView
        Adds view to this activity 100%x,100%y
      • ClearDiskCache
        Clears disk cache.
      • ClearMemoryCache
        Clears memory cache
      • DestroyEngine
        Stops ImageLoader and clears current configuration. Use this option on exit app.
      • GetArrayList As List
        Gets array.
      • GetCacheDir As String
        Returns application cache directory. Cache directory will be created on SD card
        <i>("/Android/data/[app_package_name]/cache")</i> if card is mounted and app has appropriate permission. Else -
        Android defines cache directory on device's file system.
        Return type: @return:Cache {@link File directory}.<br />
        <b>NOTE:</b> Can be null in some unpredictable cases (if SD card is unmounted)
      • GetImageListFromAssets (path As String, sort As Boolean) As List
        Get entire list of images stored in assets or sub-folder
        Examples:
        <code>
        Dim lv as ListView
        Dim l as list
        l.Initialize
        lv.Initialize("lv")
        Sub Menu_Click
        Activity.AddView(lv,0,0,100%x,100%y)
        l = GridView.GetImageListFromAssets("Here the Images folder stored in Assets")
        or
        l = GridView.GetImageListFromAssets(File.DirAssets)
        or
        l = GridView.GetImageListFromAssets("")
        For n = 0 To l.Size-1
        lv.AddSingleLine(l.Get(n))
        next
        End Sub
        </code>
      • GetIndividualCacheDir As String
        Returns individual application cache directory (for only image caching from ImageLoader). Cache directory will be
        created on SD card <i>("/Android/data/[app_package_name]/cache/b4AGridview-Images")</i> if card is mounted and app has
        appropriate permission. Else - Android defines cache directory on device's file system.
      • GetItem (position As Int) As String
        Returns Item
        Example:
        i.Bitmap=LoadBitmap("",g.GetItem(Position))
      • GetRealImagePath (filename As String) As String
        Returns the real path of the image
      • GoToWebsite (url As String)
        Go to web site by given an address
        Example:
        GoToWebsite("www.example.com")
        url:
      • Initialize (EventName As String)
        Initialize the object
      • Initialize2 (EventName As String, withCacheName As String)
        Initialize the object and set own cache directory
      • InitializeFromLayout (EventName As String, container As ViewGroup, Layout As String, LayoutID As String)
        Initialize the object from layout
      • PauseEngine
        Pause ImageLoader. All new load and display tasks won't be executed until ImageLoader is resumed.
        Already running tasks are not paused.
      • ResumeEngine
        Resumes waiting load and display tasks
      • SetArrayList (array As ArrayList)
        Sets array.
      • SetText (text As String)
        Sets the string value of the TextView.
      • SetText2 (index As Int, text As String)
        Sets the string value of the TextView.
      • ShareItemsTo (appName As String, item As String, subJect As String, message As String, shareTo As String)
        Share any items to ?
        app: name
        item:
        subJect:
        message:
        shareTo:
      • ShareTextUrlTo (subject As String, text As String, message As String, shareTo As String)
        Share any text to ?
        subject:
        text:
        message:
        shareTo:
      • ShowActionBarToShare (icons() As String)
        Sets the icons on action bar
        Example:
        Dim icons() As String = Array As String("gmail.png","email.png","gmx.png","dropbox.png","facebook.png","twitter.png","telegram.png","line.png")
        icons: as array
      • ShowFromAssets (path As String, sort As Boolean)
        Populate GridView from assets or assets/sub-folder
      • ShowFromBucket (path As String, sort As Boolean)
        Populate GridView from sdcard
      • ShowFromMediaStore (sort As Boolean)
        Populate GridView from media store images
      • ShowFromSdCard (dir As String, path As String, sort As Boolean)
        Populate GridView from sdcard
      • ShowFromWeb (webStrings() As String, sort As Boolean)
        Populate GridView from web
      • StopEngine
        Cancels all running and scheduled display image tasks.
        <b>NOTE:</b> This method doesn't shutdown if you set them.

        ImageLoader still can be used after calling this method.
      • TextBackGroundColor (red As Int, green As Int, blue As Int)
        Sets the background color for this view.
        <b>by default red = 0</b>
        <b>by default green = 0</b>
        <b>by default blue = 0</b>
      • TextColor2 (alpha As Int, red As Int, green As Int, blue As Int)
        Get or Sets Text Color - by default White
      • isPauseOnFling As Boolean
        Whether pause ImageLoader during fling
      • isPauseOnScroll As Boolean
        Whether pause ImageLoader during touch scrolling
      Permissions:
      • android.permission.INTERNET
      • android.permission.READ_EXTERNAL_STORAGE
      • android.permission.WRITE_EXTERNAL_STORAGE
      Properties:
      • CacheInMemory As Boolean [write only]
        Sets whether loaded image will be cached in memory.
      • CacheOnDisk As Boolean [write only]
        Sets whether loaded image will be cached on disk.
      • ColumnWidth As Int
        Get or Sets Specifies the fixed width for each column.
      • CompressFormat As BitmaCompression
        Get or Sets the known formats a bitmap can be compressed into [ JPG or PNG ]Sets the quality of a bitmap, that can be compressed. [ 0 = low -> 100 = high ]
        by default PNG
      • CompressQuality As Int
        Get or Sets the quality of a bitmap, that can be compressed. [ 0 = low -> 100 = high ]
        by default 100
      • DelayBeforeLoading As Int [write only]
        Sets delay time before starting loading task. Default - no delay.
      • FadeInTime As Int [write only]
        Duration of "fade-in" animation (in milliseconds)
        Whether animation should be played if image is loaded from network
        Whether animation should be played if image is loaded from disk cache
        Whether animation should be played if image is loaded from memory cache
      • Friction As Boolean
        Get or Sets the amount of friction applied to flings.
      • Gravity As Int [write only]
        Specifies the gravity within each cell.
      • HorizontalSpacing As Int [write only]
        Defines the default horizontal spacing between columns..
      • ItemHeight As Int
        Get or Sets the the size of the images will be displayed in thumbnail by default size is 480x320
      • ItemWidth As Int
        Get or Sets the the size of the images will be displayed in thumbnail by default size is 480x320
      • Length As Int [read only]
        Returns length
      • LoadFontFromAssets As String [write only]
        Loads a new Typeface from the specified font data.
      • LoadFontFromFile As String [write only]
        Loads a new Typeface from the specified font data.
      • MaxAnimationVelocity As Int
        Get or Sets max animation velocity.
      • NumColumns As Int
        Get or Sets the number of columns in the grid.
      • PauseOnFling As Boolean [write only]
        Whether pause ImageLoader during fling
      • PauseOnScroll As Boolean [write only]
        Whether pause ImageLoader during touch scrolling
      • ProgressBarIndeterminate As Boolean [write only]
        Change the indeterminate mode for this progress bar.
      • ProgressBarVisible As Boolean [write only]
        Set the enabled state of this view. - by default is trueChange the indeterminate mode for this progress bar.
      • RemoveAt As Int [write only]
        Removes the item at the specified location from this list.
      • ResetViewBeforeLoading As Boolean [write only]
        Sets whether image view will be reset before image loading start
      • RoundedBitmap As Boolean [write only]
        Can display bitmap with rounded corners. - by default is false
      • ScaleType As PhotoScaleTypes
        Controls how the image should be resized or moved to match the size of this ImageView.
        by default ScaleTypeFIT_XY
      • ScaleTypeForRounded As ScaleType [write only]
        Controls how the RoundedBitmap should be resized or moved to match the size of this ImageView.
        by default ScaleType.FIT_CENTER
      • Selection As Int
        Get or Sets the currently selected item.
      • SetBorderColor As Int [write only]
        Set the border Color - by default is transparent
      • SetBorderWidth As Int [write only]
        Set the border Width - by default is 0
      • SetCornerRadius As Int [write only]
        Set the corner Radius - by default is 0
      • SetImageOnFail As String [write only]
        Sets own icon on fail
      • SetImageOnLoading As String [write only]
        Sets own icon on loading
      • SetNoEffect As Boolean [write only]
        Can display bitmap with rounded corners.
        Show thumbnails with corner radius or oval. - by default is true
      • ShouldOnlyAnimateFling As Boolean
        Get or Sets should only animate fling.
      • ShouldOnlyAnimateNewItems As Boolean
        Get or Sets should only animate new item.
      • ShowMessageError As Boolean [write only]
        Set to true if you want to display an error message.
      • SimulateGridWithList As Boolean
        Get or Sets simulate grid with list.
      • SmoothScrollbarEnabled As Boolean [write only]
        When smooth scrollbar is enabled, the position and size of the scrollbar thumb is computed based on the number of visible pixels in the visible items.
      • StretchMode As StretchModeEnum
        Defines how columns should stretch to fill the available empty space, if any.
        Examples:
        GridView.StretchMode = GridView.StretchMode.STRETCH_SPACING
      • Tag As Object
        Get or Sets this view's tag.
      • TextBackGroundAlpha As Int
        Get or Sets alpha property of the view, as a value between 0 (completely transparent) and 255 (completely opaque).
        <b>by default alpha = 0</b>
      • TextBackGroundColor2 As String [write only]
        Sets the background color for this view.
        Example:
        TextBackGroundColor2("#88666666")
      • TextColor As Int
        Get or Sets Text Color - by default White
      • TextGravity As Int
        Get or Sets the horizontal alignment of the text that will be used.
      • TextLines As Int
        Get or Sets the TextView exactly this many lines tall.
      • TextPosition As TextPositionEnum
        Get or Sets the position alignment of the text that will be used.
        <b>param Text_Top_OutSide</b>
        <b>param Text_Top_Inside</b>
        <b>param Text_Center_Inside</b>
        <b>param Text_Bottom_Inside</b>
      • TextSize As Int
        Get or Sets Text Size - by default 14
      • TextStyle As Int [write only]
        Sets the style in which the text should be displayed.
      • TextTypeFace As TypefaceUtils
        Get or Sets the typeface and style in which the text should be displayed.
        Note that not all Typeface families actually have bold and italic variants,
        so you may need to use TextStyle(style) to get the appearance that you actually want.
      • TextVisible As Boolean
        Get or Sets the visibility of the text - by default is hide
      • TransitionDuration As Int
        Get or Sets transition duration.
      • TransitionEffect As TransitionEffect
        Get or Sets the desired transition effect.
      • Version As String [read only]
        Version of the library
      • VerticalSpacing As Int [write only]
        Defines the default vertical spacing between rows.
     

    Attached Files:

    Last edited: Jan 25, 2017
  2. Ohanian

    Ohanian Active Member Licensed User

    Hi,
    tanx :)
     
    luke2012 likes this.
  3. icefairy333

    icefairy333 Active Member Licensed User

    thanks for this
     
  4. lonleystar

    lonleystar Well-Known Member Licensed User

    Hi Ohanian, Thank you for choosing my library.
     
  5. lonleystar

    lonleystar Well-Known Member Licensed User

    Hi icefairy333, Thanks again.
     
  6. Informatix

    Informatix Expert Licensed User

    The problem with images not squared is the same as in your gallery. They are compressed because they are not adapted to the thumbnail size.

    My pictures are ugly (very pixellated) when I set a big size for them (but still under their real size). It looks like you are sampling them down a lot.

    The scrolling is far from smooth on my low-end device but I suppose it's due to the Java view you are wrapping.

    And finally the demo crashed on my device under Gingerbread after a fling gesture. Here's the log:
    LogCat connected to: 10C61F1AAA62
    --------- beginning of /dev/log/system
    --------- beginning of /dev/log/main
    ** Activity (main) Resume **
    java.lang.NullPointerException
    at android.view.View.buildDrawingCache(View.java:6599)
    at android.view.View.getDrawingCache(View.java:6449)
    at android.view.ViewGroup.drawChild(ViewGroup.java:1715)
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1517)
    at android.widget.AbsListView.dispatchDraw(AbsListView.java:1485)
    at android.view.View.draw(View.java:6904)
    at android.widget.AbsListView.draw(AbsListView.java:2593)
    at android.view.ViewGroup.drawChild(ViewGroup.java:1790)
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1517)
    at android.view.ViewGroup.drawChild(ViewGroup.java:1788)
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1517)
    at android.view.View.draw(View.java:6904)
    at android.widget.FrameLayout.draw(FrameLayout.java:357)
    at android.view.ViewGroup.drawChild(ViewGroup.java:1790)
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1517)
    at android.view.ViewGroup.drawChild(ViewGroup.java:1788)
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1517)
    at android.view.View.draw(View.java:6904)
    at android.widget.FrameLayout.draw(FrameLayout.java:357)
    at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1871)
    at android.view.ViewRoot.draw(ViewRoot.java:1528)
    at android.view.ViewRoot.performTraversals(ViewRoot.java:1264)
    at android.view.ViewRoot.handleMessage(ViewRoot.java:1868)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:130)
    at android.app.ActivityThread.main(ActivityThread.java:3683)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:507)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
    at dalvik.system.NativeStart.main(Native Method)
     
  7. lonleystar

    lonleystar Well-Known Member Licensed User

    Hi informatix to my tab work fantastic.

    I think it's time to change your phone. of course a joke, but I'll check to improve it.
     
  8. Informatix

    Informatix Expert Licensed User

    My phoneS ;) I have three devices, four soon. It's very useful to quickly test different OS or different screen sizes.

    Your new gallery libs are interesting in comparison of my own Gallery class because they save more memory and allow to display a bigger number of images. But they are lacking plenty of options. That's why I encourage you to add a few features to offer a really good alternative to my class.
    Anyway, thank you for your contribution.
     
  9. lonleystar

    lonleystar Well-Known Member Licensed User

    Hi informatix, tell me what else can add, and I´ll do to improve it.
     
  10. Informatix

    Informatix Expert Licensed User

    The most important things are in post #6
     
  11. lonleystar

    lonleystar Well-Known Member Licensed User

    Now perfect, Fixed issue over 1000 pictures
     
  12. TheMightySwe

    TheMightySwe Active Member Licensed User

    Is it possible to populate grid pictures one by one

    Hi,

    Is it possible to populate the grid by adding pictures one by one, and just the pictures you want from the "File.DirAssets" folder?

    Regards,
    Mighty
     
  13. lonleystar

    lonleystar Well-Known Member Licensed User

    Hi TheMightySwe,

    I think yes, will check tonight when i come fro work.
     
  14. lonleystar

    lonleystar Well-Known Member Licensed User

    Hi TheMightySwe,

    I just upload the library 2.52.

    AddImage
    AddImageAt

    Now, you can manually add images in sequence, or to a specific location.
     
  15. lonleystar

    lonleystar Well-Known Member Licensed User

    got donation

    Hi Rubén Sánchez Peña i dont remember your nick anyway thank you for your donation.
     
  16. clarionero

    clarionero Active Member Licensed User

    Im R S P :)
     
  17. lonleystar

    lonleystar Well-Known Member Licensed User

    Hi Clarionero,

    Thx a lot.
     
  18. TheMightySwe

    TheMightySwe Active Member Licensed User

    Great!


    Lovley!

    Regards,

    Mighty
     
  19. lonleystar

    lonleystar Well-Known Member Licensed User

    Hi TheMightySwe,

    Is that what you were looking for?
     
  20. aggelos

    aggelos Member Licensed User

    Hello
    very nice library!
    i am testing it for the last 4 days

    i have a couple of suggestions/questions

    1)
    in what order the images are read from the directory and loaded?
    because i load them using
    g.PopulateGridView and it doesn't match the order of

    Dim fileList As List
    fileList = File.ListFiles(dir)

    maybe you should have an option for loading order(not sorting,but loading order)

    i need the order because when the item is clicked i open an imageview.and i use swipe left-right to
    show the prev/next image to the user

    2) can i populate an empty grid and then add images using addimage?

    the best i could do was
    File.MakeDir(File.DirDefaultExternal,"dummyksuxiemfbddb")
    g.PopulateGridView(File.DirDefaultExternal,"dummyksuxiemfbddb")

    and then addimage

    3) how can i get a list of all the items/images?
    again this is related to the showing the user the prev/next image

    4) the first row of the gridview doesn't have any spacing with the top
    there should be an option for the firstrow spacing,or it should use the g.VerticalSpacing value

    5) does the gridview autogrow when it loads images?




    Thank you!
    Aggelos
     
Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice