0

I have a font from asset folder (Comic_Sans_Reg.ttf), I want implement it on spinner. When i click spinner the text will chenge depend on font style.

this is my simple code:

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
            }
        });

there is error when I click "Comic" please give me advice. on my log there is message "addFontFromAsset failed to create font fonts/Comic_Sans_Reg.ttf"

Thank you.

1 Answers1

0

The assets folder should be inside of the source sets. And put .ttf files direct in assets folder. src/main/assets/, don't add fonts folder.

Tung Tran
  • 2,885
  • 2
  • 17
  • 24