如何在listview上设置自定义字体?

时间:2012-12-24 15:51:15

标签: android listview sdk fonts

我无法在listview上设置字体,Typeface仅适用于textview。有没有办法轻松设置自定义字体?谢谢。

1 个答案:

答案 0 :(得分:-1)

您可以为列表视图创建一个适配器,并在那里的TextView上设置字体类型。

这是一个适配器的剪辑(它在C#中,但它与Java没有太大区别):

    class ParcelRecordContactAdapter : ArrayAdapter<ParcelRecordContact>
    {
        List<ParcelRecordContact> contacts;

        public ParcelRecordContactAdapter(Context context, int textViewResourceId, List<ParcelRecordContact> contacts)
            : base(context, textViewResourceId, contacts)
        {
            this.contacts = contacts;
        }

        public override View GetView(int position, View convertView, ViewGroup parent)
        {
            View v = convertView;

            if (v == null)
            {
                LayoutInflater li = (LayoutInflater)this.Context.GetSystemService(Context.LayoutInflaterService);

                v = li.Inflate(Resource.Layout.ListItem_SingleLine, null);
            }

            ParcelRecordContact contact = contacts[position];

            if (contact != null)
            {
                /**********************************************************
                 * change font on tv here
                 **********************************************************/

                TextView tv = (TextView)v.FindViewById(Resource.Id.tv_single_line_list_item_1);

                if (tv != null)
                {                        
                    tv.Text = "android is fu.... n"

                    Typeface tf = Typeface.createFromAsset(getAssets(), "fonts/DroidSansFallback.ttf");

                    tv.setTypeface(tf);
                }
            }

            return v;
        }
    }