2014-02-26 32 views
0

我正在做一个演示。因为我将系统字体加载到Spinner,我想将所选字体设置为TextView。我完成了字体加载,但我无法将其设置为TextView。我很困惑与TypeFace ... 以下是我的代码..将选定的系统字体设置为TextView

 package com.example.accessingsystemfonts; 

    import java.io.File; 
    import java.util.ArrayList; 
    import java.util.List; 

    import android.app.Activity; 
    import android.graphics.Typeface; 
    import android.os.Bundle; 
    import android.view.View; 
    import android.view.View.OnClickListener; 
    import android.widget.ArrayAdapter; 
    import android.widget.Button; 
    import android.widget.Spinner; 
    import android.widget.TextView; 

    public class MainActivity extends Activity { 
    TextView tv; 
    Button b1; 
    Spinner sp1; 
    List<String> fontNames ; 
     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 
      tv=(TextView)findViewById(R.id.tv); 
      b1=(Button)findViewById(R.id.buttonset); 
      sp1=(Spinner)findViewById(R.id.spinnersystemfonts); 
      readAllFonts(); 
      b1.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View v) { 
        tv.setTypeface(?); **How to set selected font??** 

       } 
      }); 
     } 



     private List<String> readAllFonts() { 

     fontNames = new ArrayList<String>(); 

     File temp = new File("/system/fonts/"); 

     String fontSuffix = ".ttf"; 

     for(File font : temp.listFiles()){ 

      String fontName = font.getName(); 

      if(fontName.endsWith(fontSuffix)) { 

       fontNames.add(fontName.subSequence(0,fontName.lastIndexOf(fontSuffix)).toString()); 

      } 
      } 
     sp1.setAdapter(new ArrayAdapter<String>(getBaseContext(),android.R.layout.simple_spinner_dropdown_item,fontNames)); 
     return fontNames; 
    } 
    } 
+0

您需要从android资产目录访问自定义字体。 –

+0

我完成了,但现在我想使用系统字体... – Akshay

回答

1

这应该为你工作

tv.setTypeface(Typeface.createFromFile("/system/fonts/" + sp1.getSelectedItem().toString() + ".ttf")); 

你可能需要调整你是如何获得所选字体的文本。

+0

非常感谢,它为我工作.. – Akshay

相关问题