gisclace Posted March 22, 2015 Share Posted March 22, 2015 (edited) 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. Edited March 23, 2015 by gisclace Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.