Italian Immagini da link di feed rss

Zugoe

Member
Salve ragazzi sto cercando un aiuto per un app che ho sviluppato con Basic4android che riceve i feed rss, ho seguito un esempio che era stato messo su b4a: basic4ppc.com/forum/basic4android-updates-questions/15382-rss-feed.html#post87864
Con questo esempio in pratica riesco a prelevare il testo del titolo della descrizione e del link di ogni articolo che esce su feedburner.
il titolo la descizione e il link compaiono in una listview però io vorrei inserire oltre a questi 3 elementi anche l'immagine principale dell'articolo cosa che non riesco a fare.. nella listview ho visto che posso inserire oltre a quei 3 elementi anche una bitmap.. quindi credo che quello che dovrei fare sarebbe di scaricare l'immagine dal link e trasformarla in bitmap per farla comparire in ogni articolo della listview, ma non so come fare.
Feed: view-source:<link>http://www.androidissimo.com</link> <description /> <pubDate>Wed, 06 Jun 2012 22:29:27 +0000</pubDate> <generator>http://wordpress.org/?v=2.6.5</generator> <language>en</language> <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="sel
Mi potreste dare una mano Grazie
Ciao
 

genesi

Active Member
Licensed User
Longtime User
Ciao , premetto che l'argomento feed rss mi è nuovo comunque , il link che hai messo non contiene nessuna immagine puoi mostrare un pezzo di file XML che contiene i riferimenti ad immagini?
grazie mario
 

Zugoe

Member
il link che ho messo il primo contiene l'esempio dei feed rss per il solo testo..
A me servirebbe prendere il link che trovi in ogni singolo articolo (immagine principale), che non capisco il motivo ma qui non ha messo il link
comunque è questo: <link>http://www.androidissimo.com</link> <description /> <pubDate>Thu, 07 Jun 2012 22:38:15 +0000</pubDate> <generator>http://wordpress.org/?v=2.6.5</generator> <language>en</language> <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="sel
è di feedburner, per vedere la pagina in xml basta cliccare dove c'è scritto View Feed XML, e poi cliccare col tasto destro sulla pagina e cliccare su Visualizza Sorgente..
Nella sorgente trovi che all'interno del tag <content:encoded> c'è il tag: <img src="Link dell'immagine"/>
I dovrei prendere l'immagine che c'è in questo link e farlo apparire nella listview come bitmap.
Non so se mi sono spiegato...
Ciao
 

genesi

Active Member
Licensed User
Longtime User
Ciao, la strada potrette essere questa:
nell'esempio che hai usato
B4X:
Sub Parser_EndElement(Uri As String, Name As String, Text As StringBuilder)
            
If Parser.Parents.IndexOf("item") > -1 Then
      
If Name = "title" Then
la variabile Name assume il valore "encode" (controlla)e nella variabile Text hai l'indirizzo dell'immagine, quindi con l'uso di Regex dovresti riuscire a tirarlo fuori e con Httputils fare il download in una bitmap da aggiungere alla listview.
Facci sapere
Ciao.
 

genesi

Active Member
Licensed User
Longtime User
Ciao , per come vedo io lo spirito di un forum non è utile una comunicazione privata, meglio continuare pubblicamente così tutti potranno trarne beneficio.
Fai le tue domande circostanziate , facendo vedere quello che hai fatto e vedrai che sarà più facile trovare tutti una soluzione.

[OT] proprio per il bene del forum non sopporto chi non risponde alle domande , o non posta la soluzione dicendo solo "ho risolto" :sign0010:
[OT]
 

Zugoe

Member
sisi lo capisco ti ho chiesto un contatto per non aspettare i tempi del forum, comunque ok..
Allora seguendo il tuo ragionamento, io dovrei aggiungere un

B4X:
Sub Globals
      Dim Immagine(per esempio) As String
End Sub

Sub Parser_EndElement(Uri As String, Name As String, Text As StringBuilder)
If Name = "(qua dovrei mettere il tag dove c'è il link dell'immagine ma non so quale gli dovrei mettere)" Then
Immagine = Text.ToString

If Name = "item" Then
RSS.AddTwoLinesAndBitmap2(Title, Description, Bitmap1, linkk)
End If

End Sub

E poi come devo fare? sono bloccato qui..
 

genesi

Active Member
Licensed User
Longtime User
Allora io ho detto
la variabile Name assume il valore "encode" (controlla)e nella variabile Text hai l'indirizzo dell'immagine, quindi con l'uso di Regex dovresti riuscire a tirarlo fuori e con Httputils fare il download in una bitmap da aggiungere alla listview.
Facci sapere
Ciao.

significa
B4X:
Sub Parser_EndElement(Uri As String, Name As String, Text As StringBuilder)
If Name = "encode" then
 qui va usato regex su Text per isolare l'indirizzo
purtroppo devi studiare le espessioni regolari in B4A fai una ricerca nel forum
qui alcuni link uno due
una volta isolato l'indirizzo con Httputils si dovrebbe finalmente scaricare l'immagine.
puoi domandare nel forum ,anche quello inglese, come isolare il testo che inizia con "img src" e termina con ."png" .
questa analisi l'ho fatta così senza avere di fronte il file XML vedi tu se è corretta o vi sono altre caratteristiche per identificare l'indirizzo.
Spero di essere stato chiaro
un saluto Mario
 

Zugoe

Member
Ah, ho visto che mettono <img src="http://www.b4x.com/forum/italian-forum//pp...(qualcosa con le p)"> e poi Dim P As ...
Vado con i ricordi perché ne ho provate tante...
ma poi come faccio a scaricare 9 immagini e metterle nella listview?

@Genesi, potresti farmi un piccolo favore potresti fare la domanda principale nella community principale quella in inglese... perché ho un problema con il forum e li non mi fa postare le domande..
 
Last edited:

genesi

Active Member
Licensed User
Longtime User
Ah, ho visto che mettono <img src="/pp...(qualcosa con le p)"> e poi Dim P As ...
Vado con i ricordi perché ne ho provate tante...
ma poi come faccio a scaricare 9 immagini e metterle nella listview?

Ci penserai dopo ( fai una ricerca per httputils).
per prima cosa devi tirare fuori l'indirizzo , lo puoi fare anche scorrendo la variabile text con una tua funzione.
 

Zugoe

Member
B4X:
Sub HandleMainPage (in As InputStream)
    start = DateTime.Now
    Dim TextReader1 As TextReader
    TextReader1.Initialize(in)
    Dim pattern, class As String
    class = "<td class=" & QUOTE & "Photo" & QUOTE & ">"
    pattern = "img src=\q([^q]+)\q".Replace("q", QUOTE)
    Dim links As List
    links.Initialize
    Dim line As String
    line = TextReader1.ReadLine
    Do While line <> Null
        If line.IndexOf(class) > -1 Then
            Dim link As String
            Dim m As Matcher
            m = Regex.Matcher(pattern, line)
            If m.Find Then
                links.Add(m.Group(1)) 'add the image link
            End If
        End If
        line = TextReader1.ReadLine
    Loop
    TextReader1.Close
    Log("done parsing main page: " & (DateTime.Now - start))
    For i = 0 To links.Size - 1 'send request for each image
        Dim request As HttpRequest
        request.InitializeGet(links.Get(i))
        HttpClient1.Execute(request, i)
    Next
    ProgressDialogHide
End Sub

Questo l'ho preso dall'esempio di flickr

http://www.b4x.com/forum/basic4android-getting-started-tutorials/6646-flickr-viewer.html#post38778
 
Top