2015-04-09 6 views
3

Я использую пользовательский шрифт, чтобы показать погодные условия (солнечный, дождь, снег ...). Я ссылаюсь на шрифт из папки «Ресурсы/шрифты».Android. Как использовать код символа в TextView?

Typeface myTypeface = Typeface.createFromAsset(getAssets(), "fonts/Climacons.ttf"); 
TextView tvTest = (TextView)findViewById(R.id.tvTest); 
tvTest.setTypeface(myTypeface); 
tvTest.setText(getString(R.string.clear_day)); 

clear_day string содержит код для символа «солнце».

<string name="clear_day">\e028</string> 

Я взял этот код с его помощью CSS:

Pseudo ::before element 
.climacon.sun:before { 
    content: "\e028"; 
} 

Но TextView показывает другие символы

enter image description here

Так что мой вопрос заключается в том, чтобы показать символ в TextView, используя его код?

+0

в '\ e028' может быть' \ 'делает ошибки –

ответ

0

Я использую это: (! assets не в res папке)

//function 
private static final Hashtable<String, Typeface> cache = new Hashtable<String, Typeface>(); 
public static Typeface getFace(Context c, String assetPath) { 
    synchronized (cache) { 
     if (!cache.containsKey(assetPath)) { 
      try { 
       Typeface t = Typeface.createFromAsset(c.getAssets(), 
         assetPath); 
       cache.put(assetPath, t); 
      } catch (Exception e) { 
       Log.e(TAG, "Could not get typeface '" + assetPath 
         + "' because " + e.getMessage()); 
       return null; 
      } 
     } 
     return cache.get(assetPath); 
    } 
} 

//where you use 
yourView.setTypeface(getFace(getActivity().getApplicationContext(),"counterfont.ttf")); 

Put * .ttf внутри assets папки

Затем поместите вашу строку значок внутри yourViewxml, в моем случае "я" есть почта значок:

<TextView 
      ... 
      android:text="i" 
      ... 
      /> 
+0

@JoeRichard это то, что I'v сделанный. –

+0

test with my .ttf: http://www.filedropper.com/counterfont –

+0

Поместите ' i' и используйте свой код –