B4A Class [B4X] [XUI] AS Onboarding View V1.11

Alexander Stolte

Well-Known Member
Licensed User
Thanks. It would be great if you add also a setting to keep the ratio of the add picture instead of stretch it to the size of the header. Sure that pic should be centred than.
The Header is not a image, you can put a image in the header, but the header is a B4xView it can also be a panel with parents. So you have the controll over the header, not the Class, the class is only resizing the Header if the width or height of the view is changed.
 

Gunther

Active Member
Licensed User
Please re-check V1.6: The B4J example is displaying only an empty small window

the DrawIndicators don't have the Height parameter in 2x calling lines.

As requested by the 'Private Sub DrawIndicators(Height As Float)'
 
Last edited:

Gunther

Active Member
Licensed User
the class is only resizing the Header
Ok, with a few modifications like:

  • giving back the AS ViewSizes:
B4X:
Public Sub getWidth As Int
   
    Return mBase.Width
   
End Sub
Public Sub getHeight As Int
   
    Return mBase.Height
   
End Sub
  • and changing the two lines in the GenImageViews-Sub:
B4X:
Private Sub GenImageViews(ImageName As String) As ImageView
   
    Private ImageView1 As ImageView
    ImageView1.Initialize("")
    ImageView1.SetLayoutAnimated(0,0,0, Activity.Width, Activity.Height*ASOnboarding1.Header_Size/100)
    ImageView1.Bitmap = xui.LoadBitmapResize(File.DirAssets,ImageName, ASOnboarding1.Width, ImageView1.Height, True)
    Return ImageView1
   
End Sub
The result is like I would like to have it. Thanks again.
 

Alexander Stolte

Well-Known Member
Licensed User
Private Sub GenImageViews(ImageName As String) As ImageView

Private ImageView1 As ImageView
ImageView1.Initialize("")
ImageView1.SetLayoutAnimated(
0,0,0, Activity.Width, Activity.Height*ASOnboarding1.Header_Size/100)
ImageView1.Bitmap = xui.LoadBitmapResize(
File.DirAssets,ImageName, ASOnboarding1.Width, ImageView1.Height, True)
Return ImageView1

End Sub
Ahhhh i see ,this is the example Code not the code in the class
 

Alexander Stolte

Well-Known Member
Licensed User
Private Sub GenImageViews(ImageName As String) As ImageView

Private ImageView1 As ImageView
ImageView1.Initialize("")
ImageView1.SetLayoutAnimated(
0,0,0, Activity.Width, Activity.Height*ASOnboarding1.Header_Size/100)
ImageView1.Bitmap = xui.LoadBitmapResize(
File.DirAssets,ImageName, ASOnboarding1.Width, ImageView1.Height, True)
Return ImageView1

End Sub
B4X:
Private Sub GenImageViews(ImageName As String) As ImageView
  
    Private ImageView1 As ImageView
    ImageView1.Initialize("")
    ImageView1.SetLayoutAnimated(0,0,0, MainForm.RootPane.Width, MainForm.RootPane.Height*ASOnboarding1.Header_Size/100)
    #If B4J
    ImageView1.SetImage(xui.LoadBitmapResize(File.DirAssets,ImageName, ASOnboarding1.BaseView.Width, ImageView1.Height, True))
    #Else
    
     ImageView1.Bitmap = xui.LoadBitmapResize(File.DirAssets,ImageName, ASOnboarding1.BaseView.Width, ImageView1.Height, True)
    #End If
  
    Return ImageView1
  
End Sub
 

fredo

Well-Known Member
Licensed User
Nice solution!

Unfortunately I get this error message:

Fatal Exception: java.lang.IllegalArgumentException: width and height must be > 0

at android.graphics.Bitmap.createBitmap(Bitmap.java:829)
at android.graphics.Bitmap.createBitmap(Bitmap.java:808)
at android.graphics.Bitmap.createBitmap(Bitmap.java:775)
at anywheresoftware.b4a.objects.drawable.CanvasWrapper.Initialize(CanvasWrapper.java:81)
at anywheresoftware.b4a.objects.B4XCanvas.Initialize(B4XCanvas.java:37)

at myapp.asonboarding._ini_views(asonboarding.java:673)
at myapp.asonboarding._base_resize(asonboarding.java:273)
at myapp.asonboarding._designercreateview(asonboarding.java:395)

at java.lang.reflect.Method.invoke(Method.java)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:196)
at anywheresoftware.b4a.objects.CustomViewWrapper.AfterDesignerScript(CustomViewWrapper.java:67)
at anywheresoftware.b4a.keywords.LayoutBuilder.loadLayout(LayoutBuilder.java:162)
at anywheresoftware.b4a.objects.PanelWrapper.LoadLayout(PanelWrapper.java:134)
at anywheresoftware.b4a.objects.B4XViewWrapper.LoadLayout(B4XViewWrapper.java:292)

at myapp.main$ResumableSub_BuildLayout.resume(main.java:821)
at myapp.main._buildlayout(main.java:796)
at myapp.main$ResumableSub_Activity_Create.resume(main.java:500)
at myapp.main._activity_create(main.java:456)

at java.lang.reflect.Method.invoke(Method.java)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:196)
at myapp.main.afterFirstLayout(main.java:104)
at myapp.main.access$000(main.java:17)
at myapp.main$WaitForLayout.run(main.java:82)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5421)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Which lead to:
2019-10-10_16-59-14.jpg

Any ideas what I can do?
 

Alexander Stolte

Well-Known Member
Licensed User
change text color
Example:
B4X:
Dim tmp_btn as B4xview = asonboarding.getBackButton
tmp_btn.TextColor = xui.Color_Black
smooth swipe
No, because this is not based on a listview or tabstrip, but maybe i have the motivation in the next days, to make a 2.0 Version based on the xCustomListview, now i have some experience with that, like in my AS ColorChooser, this is based on the xCustomListview.
 

ykucuk

Well-Known Member
Licensed User
Example:
B4X:
Dim tmp_btn as B4xview = asonboarding.getBackButton
tmp_btn.TextColor = xui.Color_Black

No, because this is not based on a listview or tabstrip, but maybe i have the motivation in the next days, to make a 2.0 Version based on the xCustomListview, now i have some experience with that, like in my AS ColorChooser, this is based on the xCustomListview.
Thank you for reply.

is it possible to change color of the heading text and description ?
 

Alexander Stolte

Well-Known Member
Licensed User
is it possible change indicator active / passive color by code
B4X:
IndicatorActiveColor
IndicatorInactiveColor
Could you calculate height of text because when i change font label can't show all text.
V1.11
  • Removed a unusded Variable
  • Add AutomaticCalculateDescriptionTextHeight Property, set it to true and the description text height adapts automatically to the text
But i dont have test it, i used the same code as in my B4X AutoTextSizeLabel
 
Top