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