ExpandableListView Android中的自定义字体

时间:2017-01-03 11:42:56

标签: android listview fonts expandablelistview

我想为我的一个textview制作自定义字体,但我还是

cannot resolve method getAssets()

以下是代码的一部分:

    @Override
public View getChildView(int groupPosition, final int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
    final String childText = (String)getChild(groupPosition, childPosition);
    if (convertView == null) {
        LayoutInflater infalInflater = (LayoutInflater)this._context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        convertView = infalInflater.inflate(R.layout.list_item, parent, false);
    }
    Utils.setFontAllView((ViewGroup)convertView);

    TextView txtListChild   = (TextView)convertView.findViewById(R.id.txtcardname);
    txtListChild.setTypeface(null, Typeface.BOLD);

    TextView kategoria  = (TextView)convertView.findViewById(R.id.kategoria);
    kategoria.setText(this.KATEGORIE[numerKategori]);


    custom_font = Typeface.createFromAsset(getAssets(), "fonts/capture.ttf");
    txtListChild.setTypeface(custom_font);

我想用这段代码制作它:

custom_font = Typeface.createFromAsset(getAssets(), "fonts/capture.ttf");
        txtListChild.setTypeface(custom_font);

3 个答案:

答案 0 :(得分:0)

将您的代码更新为此功能:

custom_font = Typeface.createFromAsset(mContext.getAssets(), "fonts/capture.ttf");

您无法在没有观看背景的情况下访问您的资产。所以Context是强制性的

而不是在getView方法中设置字体,您可以在自定义textview类中定义字体,通过使用它可以减少内存,并且您的应用程序性能会更好。

答案 1 :(得分:0)

您可以使用上下文调用getAssets。使用此:

custom_font = Typeface.createFromAsset(this._context.getAssets(), "fonts/capture.ttf");
祝你好运。

答案 2 :(得分:0)

您希望从代码中将其用于适配器

执行以下更改

使用上下文

确保您的资产文件夹中的字体存在capture.ttf文件

检查文件capture.ttf的路径

 Context context = null;
            Typeface custom_font = Typeface.createFromAsset(context.getAssets(), "fonts/capture.ttf");
      txtListChild.setTypeface(custom_font);