2010-03-18 4 views
8

Est-il possible d'entourer une image d'une image? Ce est la chose typique que les gens font en CSS comme celui-ci http://www.echoecho.com/htmlimages08.htmAndroid - Interface utilisateur pour l'habillage de texte d'une image

Merci,
T

+0

Si vous voulez pour utiliser uniquement le flottant gauche et pour les téléphones Android à partir de la version 2.2, vous pouvez utiliser la solution que j'ai décrite à ma réponse à une autre question ici: http://stackoverflow.com/a/8463221/427225 – vorrtex

Répondre

4

Pourquoi ne pas simplement utiliser un WebView? Vous aurez plus de liberté à l'avenir pour personnaliser la mise en page de cette façon.

Si un WebView est trop lourd pour votre cas d'utilisation, vous aurez probablement besoin de rendre le texte et l'image manuellement. Vous pouvez trouver des informations pertinentes dans this android-developers thread.

0

Une autre façon d'y parvenir consiste à créer une image contenant le texte et les images que vous souhaitez afficher. De toute évidence poids plus lourd et une solution de contournement.

Vous pouvez le faire en utilisant webview et une solution de contournement pour charger le contenu local. Comme du SDK 1.0 WebView ne peut pas charger le contenu local sans les contournements de travail décrites dans ces articles:

http://www.techjini.com/blog/2009/01/10/android-tip-1-contentprovider-accessing-local-file-system-from-webview-showing-image-in-webview-using-content/

et

http://blog.tourizo.com/2009/02/how-to-display-local-file-in-android.html

lien Roman est à un fil qui dit que vous pouvez » t le faire en mode texte, ce n'est pas une option pour le moment.

15

J'ai écrit un widget pour cela: http://code.google.com/p/android-flowtextview/

enter image description here

Ce widget étend (et se comporte donc comme) un RelativeLayout afin que vous puissiez ajouter des vues de l'enfant. La classe expose une méthode setText() qui vous permet de définir le texte de la vue (simple ou crânable), puis vous appelez invalidate() pour afficher le texte. Le texte remplira tout espace laissé par les vues enfant.

Exemple d'utilisation:

<com.pagesuite.flowtext.FlowTextView 
      android:id="@+id/tv" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" > 

      <ImageView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentLeft="true" 
       android:layout_alignParentTop="true" 
       android:padding="10dip" 
       android:src="@drawable/android" /> 

      <ImageView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentRight="true" 
       android:layout_marginTop="400dip" 
       android:padding="10dip" 
       android:src="@drawable/android2" /> 
     </com.pagesuite.flowtext.FlowTextView> 

Puis dans votre code:

tv = (FlowTextView) findViewById(R.id.tv);    
Spanned spannable = Html.fromHtml("<html ... </html>"); 
tv.setText(spannable); // using html 
tv.setText("my string"); // using plain text  
tv.invalidate(); // call this to render the text 

Toujours heureux de vous aider si vous avez des problèmes avec cela, trouver mon email sur mon profil

+0

À quelle vitesse est-ce? Utilise-t-il WebView à l'intérieur? –

+0

Non son natif, très rapide –

+0

Je ne veux pas scrollview dans cette bibliothèque à la place je veux ellipsize texte. Toute solution ? –

Questions connexes