web-dev-qa-db-fra.com

Changer la taille de la police dans ListView - Android/Eclipse

Comment puis-je changer la taille de la police dans un élément ListView? Dans mon fichier main.xml, j'ai essayé plusieurs valeurs différentes pour Android: textSize (pt, px, sp, dp) et rien ne semble le changer.

Voici ce que j'ai actuellement dans le fichier main.xml:

<ListView xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:id="@Android:id/list"
    Android:textColor="#ffffff"
    Android:background="#000080" 
    Android:layout_width="fill_parent"
    Android:layout_height="wrap_content" 
    Android:clickable="true" 
    Android:dividerHeight="1px"
    Android:layout_marginTop="5px" 
    Android:textSize="8px"/>

Voici mon Java:

package com.SorenWinslow.TriumphHistory;

import Android.app.ListActivity;
import Android.os.Bundle;
import Android.widget.ArrayAdapter;

public class TriumphHistory extends ListActivity {
    String[] HistoryList;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        ArrayAdapter<String> adapter;
        HistoryList = getResources().getStringArray(R.array.history);
        adapter = new ArrayAdapter<String> (this,Android.R.layout.simple_list_item_1,HistoryList);
        setListAdapter(adapter);
    }

}
21
Soren

2 façons d'aller:

  1. Copiez simple_list_item_1.xml à partir de sources Android, modifiez-le, puis utilisez-le à la place de Android.R.layout.simple_list_item_1;
  2. Utilisez BaseAdapter et modifiez la taille de la police dans l'appel getView(..).

Je vous suggère d'aller avec ce dernier.

27
yanchenko

Allez dans la disposition créer un nouveau fichier XML nommé mylist.xml

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:Android="http://schemas.Android.com/apk/res/Android" 
 Android:id="@Android:id/text1"  
        Android:paddingTop="2dip" 
        Android:paddingBottom="3dip" 
    Android:layout_width="fill_parent" 
    Android:layout_height="wrap_content" /> 

maintenant dans le code 

        adapter = new ArrayAdapter<String> (this,Android.R.layout.simple_list_item_1,HistoryList);

changez le en 

        adapter = new ArrayAdapter<String> (this,R.layout.mylist,HistoryList);
57
Shereef Marzouk

Veuillez créer un autre fichier nommé list_item.xml

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_width="fill_parent"
    Android:layout_height="fill_parent" 
    Android:padding="6dp"
    Android:textSize="21sp">

6
Zou

La réponse rapide est que vous ne pouvez modifier la taille du texte qu'en utilisant votre propre présentation plutôt que celle d'Android.R.layout.simple_list_item. En faisant cela, vous pouvez modifier les propriétés de TextView telles que la taille du texte. Cependant, si vous n'avez pas utilisé de listes avec vos propres dispositions, elles peuvent paraître un peu complexes à utiliser dès la première fois. J'essaierai de revenir et d'éditer cette réponse pour fournir plus d'informations ultérieurement, mais je vous suggère de rechercher des didacticiels sur les vues de liste personnalisées - qui vous montreront comment inflate vos propres fichiers de présentation.

0
Steve Haley

Créez un autre fichier XML pour le texte qui devrait figurer dans les lignes de la liste.

et ajoutez simplement Android: layout_height = "? android: attr/listPreferredItemHeight" dans votre TextView: D (mettez-le dans une mise en page relative plutôt qu'en une mise en page linéaire)

puis utilisez votre précédent fichier XML ListView pour setContentView (R.layout.listview) 

et l'autre fichier xml dans votre code ArrayAdapter

Adaptateur ArrayAdapter = new ArrayAdapter (this, R.layout.yoursecondLayoutforthelistswithText, R.id.titles, HistoryList)

le R.id.titles est l'id du TextView

0
Vasile Surdu