4 Domanda: Textview wrap around Visualizza [chiuso]

domanda creata a Wed, Apr 24, 2019 12:00 AM

Sto cercando di fare in modo che i miei layout orizzontali sfruttino la stanza disponibile.

In un'informazione che mostra un'attività ho una "casella dei fatti" seguita da una grande scatola di testo. Mi piacerebbe che l'infobox galleggi a destra, in modo simile alla seguente immagine.

È possibile utilizzare l'API TextView di Android?

    
28
  1. qualche alternativa all'utilizzo di una webview?
    2011-02-17 22: 47: 43Z
  2. Ho trovato una soluzione migliore in realtà. La classe StaticLayout ti consente di misurare una stringa data una vernice. Ciò mi consente di dividere il testo in tre TextViews: in alto, in basso e in basso.
    2011-10-22 13: 53: 02Z
  3. Ho già risposto [qui] [1] [1]: stackoverflow.com/questions/2474012/... È un widget nativo che è pronto per andare
    2013-02-05 16: 58: 07Z
4 risposte                              4                         

Suggerirei di utilizzare una WebView per questo. Puoi formattare il testo in una visualizzazione web con la solita formattazione HTML /CSS, con cui il layout desiderato è abbastanza semplice da realizzare.

    
3
2010-09-02 12: 15: 01Z
  1. Giusto, ma sarebbe piuttosto complicato condividere risorse e cose?
    2010-09-02 12: 46: 26Z
  2. Ho downvoted solo perché c'è una soluzione più semplice e meno disordinata con FlowTextView (vedi altra risposta)
    2016-03-02 12: 27: 26Z

trovato questa soluzione !! controllalo dalla fonte --- > answer source

Come avere pochi elementi di layout attorno

Questo è un problema che potrebbero verificarsi quando si utilizzano layout su Android.

Dì che vuoi mettere un'immagine a metà di una frase. puoi aggiungere un paio di TextView e un ImageView ma se lo spazio orizzontale diventa troppo piccolo, le due TextView inizieranno a girare in modo indipendente, il che sembrerà strano. Vorresti che l'immagine fosse parte del tuo TextView e che l'intera frase si avvolgesse bene. Fare così: * Sostituisci i tre oggetti con una Spannable TextView * usa un SpannableStringBuilder per aggiungere tutte le tue stringhe (non dimenticare di aggiungere un carattere in più (uno spazio per esempio) che verrà sostituito dall'immagine) * ed infine usa setSpan (ImageSpan, begin, end, flag) su quel builder in cui ImageSpan è un ImageSpan contenente il drawable della tua immagine, begin è l'indice del personaggio che hai inserito

Ed ecco come dovrebbe apparire il codice:

aggiungi android: bufferType = "spannable" alla tua TextView

 
SpannableStringBuilder builder = new SpannableStringBuilder();
builder.append(mContext.getText(R.string.part1));
int lengthOfPart1 = builder.length();
builder.append(" ");
builder.append(mContext.getText(R.string.part2));
Drawable d = mContext.getResources().getDrawable(R.drawable.picasaIcon);
d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight()); // <---- Very important otherwise your image won't appear
ImageSpan myImage = new ImageSpan(d);
builder.setSpan(myImage, lengthOfPart1, lengthOfPart1 + 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
myTextView.setText(builder);
    
11
2011-04-04 16: 41: 10Z
  1. È un bel trucco. Sfortunatamente può essere utilizzato solo per posizionare un'immagine su una linea. Immagino che un'opzione potrebbe essere quella di tagliare l'immagine in un sacco di pezzi di altezza della linea, che potrebbero poi be inserito come spendibile.
    2011-08-24 13: 43: 44Z
  2. Wow, grazie mille per aver postato questa fonte e questa risposta. Ho cercato ovunque e non ho mai pensato di usare un Spannable. Questa dovrebbe essere la risposta!
    2017-05-18 02: 10: 28Z

So che è tardi, ma per le persone che stanno ancora cercando di raggiungere questo obiettivo, ecco una biblioteca che mira a raggiungere proprio questo. https://github.com/deano2390/FlowTextView

    
7
2015-02-12 20: 23: 05Z

Temo che ciò non sia possibile con un singolo TextView. Un TextView deve essere un rettangolo e non è in grado di visualizzare viste secondarie. Una soluzione alternativa potrebbe essere quella di creare due TextViews e fare il primo taglio del testo, quindi chiedere alla prima vista testuale quanto può visualizzare e aggiungere il resto della stringa alla seconda visualizzazione del testo.

    
2
2010-09-02 11: 56: 27Z
  1. Non sono riuscito a trovare un metodo per verificare quanto testo può essere visualizzato in un TextView. Forse c'è un modo per farlo ma non riuscivo a trovarlo ora.
    2010-09-02 11: 59: 35Z
  2. So del metodo Paint.breaktext. Se potessi ottenere Paint da TextView, ciò potrebbe essere fattibile.
    2010-09-02 12: 45: 30Z
fonte posta Qui