2016-01-08 15 views
6

Attualmente sto valutando Xamarin Forms come alternativa alle nostre applicazioni HTML con targeting per piattaforme mobili.Xamarin Forms: Incorpora i simboli nel testo

Le nostre applicazioni utilizzano spesso simboli grafici incorporati in paragrafi di testo. L'effetto desiderato si presenta in questo modo:

Example

Naturalmente il testo deve anche essere in grado di avvolgere liberamente intorno, inclusi tutti i simboli. In HTML questo si ottiene semplicemente in questo modo:

<p>Sample text with <img src="sample.jpg"> embedded</p> 

Come posso ottenere lo stesso effetto utilizzando i moduli Xamarin? Ho già esaminato FormattedStrings che consente la formattazione dei sottoparagrafi di etichette, tuttavia non sembrano consentire l'incorporamento di immagini.

Si prega inoltre di notare che la soluzione è necessaria per supportare iOS, Android e Windows Phone 8.1 almeno.

risposta

1

Attualmente, l'unico modo per avere i simboli e le immagini all'interno di blocchi di testo è quello di utilizzare WebView (https://developer.xamarin.com/guides/xamarin-forms/working-with/webview/)

var browser = new WebView(); 
var htmlSource = new HtmlWebViewSource(); 
htmlSource.Html = @"<html><body> 
    <h1>Xamarin.Forms</h1> 
    <p>Welcome to WebView.</p> 
    </body></html>"; 
browser.Source = htmlSource; 
+0

Be ', non è stato in grado di provarlo su iOS ancora, tuttavia, su WP8 e Android questo sembrava funzionare bene, e come sembra essere l'unico modo per farlo in modo indipendente dalla piattaforma, è la risposta accettata. –

4

Ovviamente essere costretti a utilizzare un WebView quasi sconfigge il punto di spostamento di un'app HTML5 per Xamarin!

nei forum Xamarin una domanda simile è stato chiesto: https://forums.xamarin.com/discussion/1649/text-with-image

per risolvere il problema Tomasz Cielecki cucinato un po 'di codice di esempio qui: https://gist.github.com/Cheesebaron/5034440

Ha poi continuato sul blog su di esso qui: http://blog.ostebaronen.dk/2013/02/adding-images-to-textview-and-edittext.html

< snip>

ho iniziato wi un esempio semplicissimo che cerca di ottenere un'immagine mostrata in un TextView. Ho cercato su google alcune soluzioni e sicuramente, Spannables permette di usare ImageSpan al loro interno! Ci sono stati dei bei campioni e così, e mi sono inventato questo.

ImageSpan in TextView

//Load up your drawable. 
var imageSpan = new ImageSpan(this, Resource.Drawable.Icon); 
//Set the text of SpannableString from TextView 
var spannableString = new SpannableString(textView.Text); 
//Add image at end of string 
spannableString.SetSpan(imageSpan, textView.Text.Length-1, textView.Text.Length, 0); 

facile, eh? E puoi aggiungere un sacco di altri Spans a Spannable, come StyleSpan, che puoi personalizzare i tuoi font con stili grassetto, corsivo e altri.

Dal momento che è stato così facile, ho cercato rapidamente di farlo con un EditText. Funziona anche bene ...

</snip>

+0

Un'altra opzione * che è platform neutral * sta avendo un controllo ImageCell in un TableView per rendere sia il testo che l'immagine. http: //blog.falafel.com/create-reusable-xaml-user-controls-xamarin-forms/Ovviamente questo richiederà un po 'di lavoro per ottenere immagini tra il testo ma è più semplice di un Renderizzatore personalizzato. Un'altra opzione è posizionare le etichette sulle immagini: https://forums.xamarin.com/discussion/19089/position-label-or-any-text-on-top-of-an-image - questa è una di quelle cose che cade nel 10% della codifica specifica della piattaforma, tuttavia sono sorpreso che non ci sia già qualcosa fuori. –

Problemi correlati