2 votes

Comment pouvons-nous fournir le style de police au texte dans ListView

Je veux personnaliser mon ListView. Je change la couleur du texte dans list_view mais je suis incapable de changer le style de police du texte du ListView. Je fournis la famille de polices au texte mais cela ne montre aucun changement lié à la police.

Voici ce que j'ai fait jusqu'à présent...

XML

Code

ArrayAdapter adapter = new ArrayAdapter(this, R.layout.listview_layout, R.id.txt, list1);
listview.setAdapter(adapter);

4voto

Developer Points 3705

Vous pouvez utiliser ceci pour changer vers une police intégrée différente, utilisez android:typeface dans le XML de mise en page ou setTypeface() en Java

Typeface type = Typeface.createFromAsset(getAssets(),""); 
   txtyour.setTypeface(type);

4voto

Prince Points 5761

Android ne vous permet pas de définir des polices personnalisées à partir de la mise en page XML.

TextView textView = (TextView) findViewById();
Typeface typeFace = Typeface.createFromAsset(getAssets(), "");
tv.setTypeface(typeFace);

Notez que vous ne pouvez exécuter ce code qu'après l'appel de setContentView(). Pour plus d'informations.

2voto

Gk' Points 36

Dites que vous voulez obtenir la police Roboto-Light sur votre TextView, mettez le fichier ".ttf" de la police respective dans vos ressources et faites ceci pour définir le TextView sur ce format :

Typeface robotolight = Typeface.createFromAsset(getAssets(),"Roboto-Light.ttf");
textView.setTypeface(robotolight);

Cela devrait fonctionner !

1voto

eluleci Points 397

Vous pouvez créer votre propre textview et l'utiliser n'importe où vous le souhaitez. Si vous devez utiliser la même police quelque part ailleurs, vous devriez certainement faire comme ça.

public class TextViewLight extends TextView {

    public TextViewLight(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        init();
    }

    public TextViewLight(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    public TextViewLight(Context context) {
        super(context);
        init();
    }

    private void init() {
        Typeface tf = Typeface.createFromAsset(getContext().getAssets(),"fonts/opensans_light.ttf");
        setTypeface(tf);
    }

}

Ensuite, vous pouvez utiliser ce textview dans le xml comme ceci.

Et vous devez également stocker vos polices dans le dossier assets. Créez donc un dossier "fonts" dans les assets et gardez-les là-bas.

Si vous utilisez une classe personnalisée pour les polices légères, en gras, en italique comme ça, lorsque vous avez besoin de changer la police de toute l'application, vous avez juste besoin de changer une ligne dans votre classe custom textview. C'est vraiment pratique pour voir votre application avec un style de police différent en quelques secondes.

0voto

Yup Points 1765

Utilisez un adaptateur de liste personnalisé, cela vous donnera la liberté totale de modifier le style de police et le style de police conditionnel également.

private class CustomListAdapter extends ArrayAdapter{
        private Context mContext;
        private int id;
        private List items ;

        public CustomListAdapter(Context context, int textViewResourceId , List list ) 
        {
            super(context, textViewResourceId, list);           
            mContext = context;
            id = textViewResourceId;
            items = list ;
        }

        @Override
        public View getView(int position, View v, ViewGroup parent)
        {
            View mView = v ;
            if(mView == null){
                LayoutInflater vi = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                mView = vi.inflate(id, null);
            }

            TextView text = (TextView) mView.findViewById(R.id.textView);

            if(items.get(position) != null )
            {
               Typeface typeFace = Typeface.createFromAsset(getAssets(), "");
tv.setTypeface(typeFace);

            }

            return mView;
        }

    }

et accédez à l'adaptateur comme suit

CustomListAdapter listAdapter = new CustomListAdapter(VotreActivité.this , R.layout.custom_list , mList);
listView.setAdapter(listAdapter);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X