通过微调项目从资产文件夹设置自定义字体

时间:2018-04-04 03:15:30

标签: android fonts spinner typeface

我有资产文件夹(Comic_Sans_Reg.ttf)中的字体,我想在微调器上实现它。 当我点击微调器时,文本将取决于字体样式。

这是我的简单代码:

Typeface FontStyle      = Typeface.DEFAULT;

   Spinner spinner     = (Spinner) findViewById(R.id.fontSpinner);
        List<String> categories = new ArrayList<String>();
        categories.add("Monospace");
        categories.add("Sans Serif");
        categories.add("Serif");
        categories.add("Bold");
        categories.add("Italic");
        categories.add("Comic");
        ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, categories);
        dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(dataAdapter);
        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> adapterView, View view, int position, long id) {
                String item     = adapterView.getItemAtPosition(position).toString();
                switch(item) {
                    case "Monospace":
                        FontStyle = Typeface.MONOSPACE;
                        break;
                    case "Sans Serif":
                        FontStyle = Typeface.SANS_SERIF;
                        break;
                    case "Serif":
                        FontStyle = Typeface.SERIF;
                        break;
                    case "Bold":
                        FontStyle = Typeface.defaultFromStyle(Typeface.BOLD);
                        break;
                    case "Italic":
                        FontStyle = Typeface.defaultFromStyle(Typeface.ITALIC);
                        break;
                    case "Comic":
                        FontStyle = Typeface.createFromAsset(getApplicationContext().getAssets(), "fonts/Comic_Sans_Reg.ttf");
                        break;

                }
                if (mCurrentText.length() > 0)
                    isEditText = true;
                onChangeTextStyle();
            }
            @Override
            public void onNothingSelected(AdapterView<?> adapterView) {
                // TODO Auto-generated method stub
            }
        });

点击&#34; Comic&#34; 请给我建议。 在我的日志中有消息&#34; addFontFromAsset无法创建字体字体/ Comic_Sans_Reg.ttf&#34;

谢谢。

1 个答案:

答案 0 :(得分:0)

assets文件夹应位于源集内。 并将.ttf files直接放在assets文件夹中。 src/main/assets/,请勿添加fonts文件夹。