gisclace Posté(e) 22 mars 2015 Share Posté(e) 22 mars 2015 (modifié) Bonjour à tous, Je me retrouve face à un problème de mise en forme que je n'arrive pas à résoudre. Je voudrais avoir une image dans un le coin haut gauche et le texte qui entoure celle-ci (dito l'image suivante : https://camo.githubusercontent.com/6fc51fa500c9cb0039d6022fbdac8f6a34046324/687474703a2f2f692e696d6775722e636f6d2f69796e7446627a2e706e67 ) Cette image est issue d'un github (https://github.com/deano2390/FlowTextView), je l'ai suivis à la lettre et au final je ne m'en sors pas. J'ai aussi suivi d'autres exemples (http://gmariotti.blogspot.in/2014/03/snippet-align-textview-around-image.html par exemple), mais même s'ils sont plus simples à comprendre, au final cela ne produit rien chez moi (je dois oublier une étape je pense mais je ne sais laquelle) Je vous détails ce que j'ai fait (je code sous android studio) : un layout nomé foobar : <?xml version="1.0" encoding="UTF-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <ImageView android:id="@+id/imageView1" android:layout_width="100dp" android:layout_height="100dp" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:contentDescription="@string/app_name" /> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:layout_centerHorizontal="true" android:gravity="left|right" /> </RelativeLayout> Un classe nomée mainactivity : package gisclace.tube; import android.text.Layout; import android.text.SpannableString; import android.text.style.LeadingMarginSpan.LeadingMarginSpan2; import android.widget.ImageView; import android.widget.TextView; import android.app.Activity; import android.content.Context; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.drawable.Drawable; import android.os.Bundle; public class MainActivity extends Activity { Context c; @SuppressWarnings("deprecation") @[member="override"] protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.foobar); Drawable dIcon = getResources().getDrawable(R.drawable.logo); int leftMargin = dIcon.getIntrinsicWidth()+30; ImageView icon = (ImageView) findViewById(R.id.imageView1); icon.setBackgroundDrawable(dIcon); String values = getString(R.string.text_sample); SpannableString ss = new SpannableString(values); ss.setSpan(new Margin(6, leftMargin), 0, ss.length(), 0); TextView messageView = (TextView) findViewById(R.id.textView1); messageView.setText(ss); } class Margin implements LeadingMarginSpan2 { private int margin; private int lines; Margin(int lines, int margin) { this.margin = margin; this.lines = lines; } @[member="override"] public void drawLeadingMargin(Canvas arg0, Paint arg1, int arg2, int arg3, int arg4, int arg5, int arg6, CharSequence arg7, int arg8, int arg9, boolean arg10, Layout arg11) { // TODO Auto-generated method stub } @[member="override"] public int getLeadingMargin(boolean arg0) { // TODO Auto-generated method stub if (arg0) { /* * This indentation is applied to the number of rows returned * getLeadingMarginLineCount () */ return margin; } else { // Offset for all other Layout layout ) { } /* * Returns * the number of rows which should be applied * indent * returned by getLeadingMargin (true) Note:* Indent only * applies to N lines of the first paragraph. */ return 0; } } @[member="override"] public int getLeadingMarginLineCount() { // TODO Auto-generated method stub return lines; } } } Et le texte dans strings. Avec cette méthode, je n'ai ni texte ni image ni texte qui apparait dans la page foobar. L'un de vous aurait-il une piste (ou un bon tuto bien détaillé (et fr tant qu'à faire ^_^)) pour que je m'en sorte? Merci d'avance. Modifié 23 mars 2015 par gisclace Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Rejoignez la conversation
Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.