0

我想向用户显示字体列表,并根据所选字体更改 textview 的文本。为此,我需要访问所有可用的字体系列并在微调器中显示它们,当用户选择特定字体时,textview 的字体将发生变化。如何在 Android 中向用户提供字体列表?请提供建议

4

2 回答 2

1

将字体名称添加到微调器。

Spinner fname = (Spinner) findViewById(R.id.spinner1);

        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
                this, R.array.fname_array, android.R.layout.simple_spinner_item);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        fname.setAdapter(adapter);
        fname.setOnItemSelectedListener(new MyOnItemSelectedListener());

R.array.fname_array保存字体列表的位置。您还必须将 ttf(font) 文件放到 assets 文件夹中,以便在您的应用程序中使用外部字体。

public class MyOnItemSelectedListener implements OnItemSelectedListener {
            TextView ptext=(TextView) findViewById(R.id.textView3);
            public void onItemSelected(AdapterView<?> parent,
                View view, int pos, long id) {
                Integer idpos;
                idpos=pos;
                if(idpos==0)
                {
                    Typeface font1 = Typeface.createFromAsset(getAssets(),"Molot.otf"); 

                    ptext.setTypeface(font1);   


                }

                if(idpos==1)
                {
                    //Toast.makeText(parent.getContext(), "The Font name is " +
                            //parent.getItemAtPosition(pos).toString(), Toast.LENGTH_LONG).show();
                    Typeface font1 = Typeface.createFromAsset(getAssets(),"MTCORSVA.TTF"); 
                    ptext.setTypeface(font1);                   

                }
                if(idpos==2)
                {
                    Typeface font1 = Typeface.createFromAsset(getAssets(),"TIMES.TTF"); 

                    ptext.setTypeface(font1);   
                } 

                ptext.setText(text.getText().toString());
            }

            public void onNothingSelected(AdapterView parent) {
              // Do nothing.
            }        
    }
于 2012-09-04T11:19:40.157 回答
0

在 Android 中,内置的字体选择是:

  • Droid Sans
  • Droid 无单声道
  • 机器人衬线

您可以通过复制 .ttf 文件并将其放置在 assets 文件夹中来加载自定义字体。要加载自定义字体,请创建一个 Typeface 对象并将其设置为视图。

Typeface type = Typeface.createFromAsset(getAssets(),"fonts/arial.ttf");
txtyour.setTypeface(type);
于 2012-09-04T11:22:53.670 回答