2010-08-19 7 views
0

J'ai utilisé RelativeLayout pour une implémentation personnalisée d'un ListAdapter et je ne suis pas sûr de pouvoir continuer à l'utiliser ou si j'ai besoin d'utiliser TableLayout.Android LinearLayout/TableLayout avec ListAdapter personnalisé. Faire des éléments Liste des aperçus de livre

Dans le premier exemple, le texte est positionné comme je le souhaite en utilisant une vue d'image et une vue de texte contenant le nom du livre et le nom de l'auteur. Cependant, je veux styliser le texte de l'auteur différemment, donc je pense que je vais avoir besoin de deux vues de texte.

Dans le second exemple, j'ai ajouté une autre vue de texte, mais celle-ci flotte vers la droite. La seconde est par exemple Clipboard02.png.

Comment faire en sorte que la deuxième vue de texte passe sous le premier texte (comme dans par exemple 1). Je l'ai fait dans le code plutôt que d'utiliser la mise en page XML.

http://carriehall.co.uk/Clipboard01.png

LinearLayout.LayoutParams skyParams = new LinearLayout.LayoutParams(70, 
    LayoutParams.WRAP_CONTENT); 

ImageView skyControl = new ImageView(context); 
skyControl.setImageResource(R.drawable.the_eyre_affair); 
addView(skyControl, skyParams); 

LinearLayout.LayoutParams bookParams = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, 
    LayoutParams.WRAP_CONTENT); 
bookParams.setMargins(5, 10, 5, 10); 

TextView bookControl = new TextView(context); 
bookControl.setTextAppearance(context, R.style.SpecialText); 
bookControl.setText(book.getTitle() + "\n\n" + book.getAuthor()); 

addView(bookControl, bookParams); 

Répondre

0

travail légèrement maladroit autour de:.

LinearLayout ll = new LinearLayout(getApplicationContext()); 
      ll.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); 
      ll.setOrientation(LinearLayout.VERTICAL); 

      TextView author = new TextView(getApplicationContext()); 
      TextView book = new TextView(getApplicationContext()); 

      LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
      ll.addView(author, params); 
      ll.addView(book, params); 

Si vous cherchez seulement à simple changement de police (Gras/Italique/Souligné) vous pouvez utiliser la mise en forme HTML (par exemple & lt b /> etc) dans la même vue de texte. Vous pouvez encore optimiser la mise en page en définissant l'image en utilisant author.setCompoundDrawablesWithIntrinsicBounds(BookCoverDrawable, null, null, null);

+0

Je voulais seulement un peu de changement de style, donc j'ai juste ajouté du HTML au texte. TextViews-je pas accepter HTML directement si fini par utiliser la classe Html: bookControl.setText (Html.fromHtml ("" + book.getTitle() + "

" + book.getAuthor())) ; addView (bookControl, bookParams); –