2014-11-20 5 views
1

В принципе, я пытаюсь импортировать шрифты ttf в проект библиотеки. Но у меня проблемы. Поскольку вы не можете импортировать ttf в папку assets/fonts, я пытался импортировать их в res/raw. Был поиск решения, но, похоже, ничего конкретного не существует, поскольку большинство людей просто импортируют в проект без библиотеки и используют Typeface.createFromAsset.Как использовать пользовательские шрифты в android Library

меня возникают некоторые трудности с загрузкой их в XML с помощью настраиваемого представления:

<com.demo.helpers.TextFontView 
        android:id="@+id/login_title_lbl" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/mob_LogIn" 
        android:textColor="@color/white" 
        android:textSize="@dimen/font_login" 
        demo:fontFace="+id/opensans-regular" 
        /> 

пытается реализовать следующий код в подклассе TextFontView, но я имею некоторые трудности, пытаясь связать его в предыдущем XML:

public static Typeface getgetTypefaceFromRes(Context context, int resource) 
    { 
     Typeface typeFace = null; 
     InputStream is = null; 
     try { 
      is = context.getResources().openRawResource(resource); 
     } 
     catch(NotFoundException e) { 
      Log.e("Typeface", "Could not find font in resources!"); 
     } 

     String outPath = context.getCacheDir() + "/tmp" + System.currentTimeMillis() + ".raw"; 

     try 
     { 
      byte[] buffer = new byte[is.available()]; 
      BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(outPath)); 

      int l = 0; 
      while((l = is.read(buffer)) > 0) 
       bos.write(buffer, 0, l); 

      bos.close(); 

      typeFace = Typeface.createFromFile(outPath); 

      // clean up 
      new File(outPath).delete(); 
     } 
     catch (IOException e) 
     { 
      Log.e("Typeface", "Error reading in font!"); 
      return null; 
     } 

     Log.d("Typeface", "Successfully loaded font."); 

     return typeFace;  
    } 

ответ

0

вы должны быть в состоянии поместить файл font.ttf в assert, а вот где вы должны положить его.

This link должен помочь.

+1

Я пробовал, не нашел там ttf. http://developer.android.com/tools/projects/index.html Проекты библиотеки не могут включать в себя необработанные активы Инструменты не поддерживают использование исходных файлов ресурсов (сохраненных в каталоге assets/directory) в проекте библиотеки. Любые ресурсы ресурсов, используемые приложением, должны храниться в каталоге assets/application самого проекта приложения. Однако поддерживаются файлы ресурсов, сохраненные в каталоге res /. – Frank

Смежные вопросы