I have an activity in which I load images from the web.
I take the images and add them to a horizontal scrollview
First time i works just fine, but if I fx leave the activity and go to another to view one of the images and go back the images is no longer shown.
If I go back to the previous activity and then select the same activity again, the images is no longer shown.
In my code I have this
First time the line b.Initialize2(Response.GetInputStream) works, but the second time the program just do nothing. No errors just nothing. It just stops executing the code.
I can still click buttons and so.
I hope there is a clever person who can help me and se what could be wrong!
This is all my code from the activity:
I take the images and add them to a horizontal scrollview
First time i works just fine, but if I fx leave the activity and go to another to view one of the images and go back the images is no longer shown.
If I go back to the previous activity and then select the same activity again, the images is no longer shown.
In my code I have this
B4X:
Sub hc_ResponseSuccess (Response As HttpResponse, TaskId As Int)
Dim b As Bitmap
b.Initialize2(Response.GetInputStream)
I can still click buttons and so.
I hope there is a clever person who can help me and se what could be wrong!
This is all my code from the activity:
B4X:
#Region Activity Attributes
#FullScreen: False
#IncludeTitle: False
#End Region
'**********************************************
'** Process Globals
'**********************************************
Sub Process_Globals
'These global variables will be declared once when the application starts.
'These variables can be accessed from all modules.
End Sub
'**********************************************
'** Globals
'**********************************************
Sub Globals
'These global variables will be redeclared each time the activity is created.
'These variables can only be accessed from this module.
Private pnlOpgaven As Panel
Private pnlBilledeVideo As Panel
Private txtBranche As EditText
Private txtBeskrivelse As EditText
Private txtHvor As EditText
Private txtHvornaar As EditText
Private hsvBillederVideo As HorizontalScrollView
Dim BilledeVideo As Bitmap
Dim dr As ColorDrawable '** Bruges til at sætte bagrundsfarve på paneler
Dim AfgivBudJob As HttpJob
Dim URLStreng As String
Dim hc As HttpClient
Dim req As HttpRequest
'** String functions
Dim StFu As StringFunctions
Dim BilledeListe As List
Dim BilledeCounter As Int
Dim BillederBitmaps As List '** Denne indeholder de valgte billeder
Dim BillederBitmapsCounter As Int '** Denne tæller de valgte billeder
End Sub
'**********************************************
'** Activity create
'**********************************************
Sub Activity_Create(FirstTime As Boolean)
'Do not forget to load the layout file created with the visual designer. For example:
'** Show layout
Activity.LoadLayout("opgavenLayout")
BilledeListe.Initialize
hc.Initialize("hc")
dr.Initialize(Colors.White, 0)
txtBeskrivelse.Background = dr
txtBranche.Background = dr
txtHvor.Background = dr
txtHvornaar.Background = dr
'** Læg tekster ind i felterne
Dim splittedString As List
splittedString = StFu.Split(Functions.ValgtOpgave, "&")
txtBeskrivelse.Text = splittedString.Get(1)
txtBranche.Text = splittedString.Get(0)
txtHvor.Text = splittedString.Get(3)
txtHvornaar.Text = splittedString.Get(2)
Functions.ValgtTaskID = splittedString.Get(4)
'** Først gang
If FirstTime = True Then
BillederBitmaps.Initialize
BillederBitmapsCounter = 0
End If
'** Lav billeder og videoer
Dim BilledeVideoString As String
Dim BilledeVideoSplitted As List
Dim VideoCompareString As String
BilledeVideoString = splittedString.Get(5)
BilledeVideoSplitted = StFu.Split(BilledeVideoString, "#")
BilledeCounter = BilledeVideoSplitted.Size
'** Undersøg om den sidste er en film
VideoCompareString = BilledeVideoSplitted.Get(BilledeCounter-1)
VideoCompareString = StFu.Mid(VideoCompareString, 2, 10)
If VideoCompareString = "_movie.mov" Then
Functions.iVideo = 1
BilledeCounter = BilledeCounter - 1
'** Læg billeder og video ind
hsvBillederVideo.Panel.LoadLayout("BillederVideoLayout")
End If
'** Gem billeder i en liste
For i = 0 To BilledeCounter
BilledeListe.Add(BilledeVideoSplitted.Get(i))
Next
'** Hent billeder
req.InitializeGet("http://94.143.10.158/images/" & BilledeListe.Get(0))
hc.Execute(req, 1)
'** Initializer HTTPJobs
AfgivBudJob.Initialize("AfgivBudJob", Me) '** Opret opgaven
End Sub
'**********************************************
'** Activity resume
'**********************************************
Sub Activity_Resume
End Sub
'**********************************************
'** Activity pause
'**********************************************
Sub Activity_Pause (UserClosed As Boolean)
End Sub
'**********************************************
'** Navigations knapper
'**********************************************
Sub btnAnnuller_Click
'** Spring til menu
StartActivity(Main)
Activity.Finish
End Sub
'**********************************************
'** Knapper
'**********************************************
Sub lblAfgivBud_Click
'** Spring til afgiv bud
StartActivity(AfgivBud)
Activity.Finish
End Sub
'**********************************************
'** Klik på billede i scrillview
'**********************************************
Sub ImageView_Click
Dim b As ImageView
b = Sender
Functions.iValgtBilledeIndex = b.Tag
'** Der er valgt video
If b.Tag = 999 Then
'** Kald activity med parameter
StartActivity(VisVideo)
Activity.Finish
Else '** Der er valgt et billede
Functions.ValgtBillede = b.Bitmap
'** Kald activity med parameter
StartActivity(Billeder)
Activity.Finish
End If
End Sub
'**********************************************
'** Functions
'**********************************************
Sub AddBillederOgVideo
Dim width, offsetX, offsetY As Int
Dim rbmp As RSImageProcessing
width = 75
offsetX = 0
offsetY = 0
'** HER PRØVER VI NOGET NYT KODE
Dim xCount As Int = 0
'** Gennemløb billeder
For x = 0 To BillederBitmaps.Size - 1
Dim s As ImageView
s.Initialize("ImageView") 'All SuggarImgView share the same event sub
s.Color = Colors.Transparent
rbmp.Initialize
BilledeVideo = BillederBitmaps.Get(x) 'LoadBitmap(File.DirRootExternal, Functions.iBilleder.Get(x))
BilledeVideo = rbmp.createScaledBitmap (BilledeVideo, 75, 75, False)
BilledeVideo = rbmp.rotate(BilledeVideo, 90)
s.SetBackgroundImage(BilledeVideo)
hsvBillederVideo.Panel.AddView(s,offsetX + xCount * (width+5), 0, width, width)
'** sæt index som tag
s.Tag = x
'** increment x counter
xCount = xCount + 1
Next
hsvBillederVideo.Panel.Width = (xCount+1) * 75
'** Check om der er en video også
If Functions.iVideo = 1 Then
Dim s As ImageView
s.Initialize("ImageView") 'All SuggarImgView share the same event sub
s.Color = Colors.Transparent
rbmp.Initialize
BilledeVideo = LoadBitmap(File.DirAssets, "film.png")
BilledeVideo = rbmp.createScaledBitmap (BilledeVideo, 75, 75, False)
s.SetBackgroundImage(BilledeVideo)
hsvBillederVideo.Panel.AddView(s,offsetX + xCount * (width+5), 0, width, width)
'** sæt index som tag
s.Tag = 999
'** increment x counter
xCount = xCount + 1
hsvBillederVideo.Panel.Width = (xCount+1) * 75
End If
End Sub
'*************************
'** HTTP - Job Done
'*************************
Sub JobDone(Job As HttpJob)
If Job.Success = True Then
Select Job.JobName
'**************************
'** Opret opgaven
'**************************
Case "AfgivBudJob"
Dim svar As String
'** Læs return svar
svar = Job.GetString
'** Find svar mellem <body> og </body>
svar = StFu.MidExtract(svar, "<body>", "</body>")
'** Split svar
Dim splittedString As List
splittedString = StFu.Split(svar, ":")
If splittedString.Get(0) == "succes" Then
End If
End Select
Else
' internetConnectionOn = False
'Log("Error: " & Job.ErrorMessage)
'ToastMessageShow("Error: " & Job.ErrorMessage, True)
End If
End Sub
'*************************
'** HttpClient events
'*************************
Sub hc_ResponseSuccess (Response As HttpResponse, TaskId As Int)
Dim b As Bitmap
b.Initialize2(Response.GetInputStream)
BillederBitmaps.Add(b)
BillederBitmapsCounter = BillederBitmapsCounter + 1
If BillederBitmapsCounter < BilledeCounter Then
req.InitializeGet("http://94.143.10.158/images/" & BilledeListe.Get(BillederBitmapsCounter))
hc.Execute(req, 1)
Else
BillederBitmapsCounter = 0
AddBillederOgVideo
End If
Response.Release
End Sub
Sub hc_ResponseError (Response As HttpResponse, Reason As String, StatusCode As Int, TaskId As Int)
Log("Error connecting: " & Reason & " " & StatusCode)
If Response <> Null Then
Log(Response.GetString("UTF8"))
Response.Release
End If
End Sub