当前位置: 首页 > 知识库问答 >
问题:

如何在listview中设置印地语字体

隆飞宇
2023-03-14

我的问题是如何在android中的自定义listview中更改印地语字体。我正在使用此代码Typeface hIndiFont=Typeface.createFromAsset(getAsset(),"fonts/DroidHindi.ttf "); // 将menuItems添加到ListView

        ListAdapter adapter = new SimpleAdapter(this, menuItems,
                R.layout.list_item,
                new String[] { KEY_NAME, KEY_DESC, KEY_COST }, new int[] {
                        R.id.name, R.id.desciption, R.id.cost });
        // Typeface tf = Typeface.createFromAsset(getAssets(),   "fonts/DroidHindi.ttf");

        setListAdapter(adapter);

        // selecting single ListView item
        ListView lv = getListView();

请帮帮我。提前谢谢!!!!!!!!!

我正在重写getView方法,但无法工作。请帮帮我。

共有2个答案

卫博雅
2023-03-14

覆盖SimpleAdapter类的getView方法,并在要更改字体的text view上设置字体,如下所示:

ListAdapter adapter = new SimpleAdapter(this, menuItems,
                R.layout.list_item,
                new String[] { KEY_NAME, KEY_DESC, KEY_COST }, new int[] {
                        R.id.name, R.id.desciption, R.id.cost }){

 public View getView(View view)
{
        LayoutInflater inflater = (LayoutInflater)context.getSystemService(LAYOUT_INFLATER_SERVICE);
    Typeface hindiFont=Typeface.createFromAsset(getAssets(),"fonts/DroidHindi.ttf"); 
    LinearLayout llMain=(LinearLayout)inflater.inflate(R.layout.list_item, null);
    TextView txtName=(TextView)llMain.findViewById(R.id.name);
    txtName.setTypeface(hindiFont); 
    TextView txtDescription=(TextView)llMain.findViewById(R.id.desciption);
    txtDescription.setTypeface(hindiFont);
    return llMain;
}
};
甄坚白
2023-03-14

将印地语truetype字体文件放入资产文件夹

并创建自定义适配器

public class MyArrayAdapter extends ArrayAdapter<String> {
    private final Context context;
    private final String[] values;

    public MyArrayAdapter(Context context, String[] values) {
        super(context, R.layout.list_mobile, values);
        this.context = context;
        this.values = values;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater inflater = (LayoutInflater) context
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        View rowView = inflater.inflate(R.layout.list_mobile, parent, false);

        TextView textView = (TextView) rowView.findViewById(R.id.label);

        //here use your true type font of hindi like this hindiFonts.ttf is placed inside asset/fonts/ folder of project
        Typeface face=Typeface.createFromAsset(getAssets(), "fonts/hindiFonts.ttf"); 
        textView .setTypeface(face); 
        textView.setText(values[position]);


        return rowView;
    }
}

在列表视图中设置上述自定义适配器

String[] MOBILE_OS = 
               new String[] { "Android", "iOS", "WindowsMobile", "Blackberry"};


        myListView.setListAdapter(new MyArrayAdapter(this, MOBILE_OS));
 类似资料:
  • 我创建了ListView,当我单击列表项时,它将打开带有NegativeButton的AlertDialog消息。这些都做得很好。现在,我想将自定义字体设置为listview项和AlertDialog的标题、消息和NegativeButton的字体。甚至我也尝试了自定义字体库,但没有得到预期的输出。这里附上我的试用代码如下。谁能告诉我出了什么问题吗? xml文件

  • 在我的活动中,我有一个listview和一个按钮。每一个都有各自的目的。 我的listview显示另一个活动中的项目详细信息。 问题是如何在相同的活动中为按钮实现onClickListener?

  • 问题内容: 我有一个ListView,它显示TextViews的列表。我希望每个TextView以适当的字体显示。作为字体String []数组的一部分出现在ListView中的字体名称的拼写与创建字体时的拼写相同。 和XML: 为什么我不能在ListView中获得每个TextView正确的字体? 问题答案:

  • 在UWP应用程序(Windows10)上,我在ListView中显示了一个记录列表。

  • 我下载了一个意思是Androidsqlite.db字典文件的单词。通过获取SQL查询 通过在TextView中使用印地语字体,我得到了正确的印地语含义。如果我尝试按System.out打印。println(印地语) 打印<代码>lR;kHkklh]diViw.kZ] 我对这个问题感到困惑,正在寻找解决方案。请在评论部分查看原始Androidsqlite.dbGithub链接。