2012-04-03 22 views
5

Her zaman Android dev becerilerimi geliştirmenin yollarını arıyorum ... Bu nedenle bu soru.Artıları ve Eksileri, düzenler arasında yeniden kullanmak için Statik referansları Yazı Tipi'nde tutuyor musunuz?

Uygulama tarafından kullanılmakta olduğu için, Typeface'in farklı fontlar için statik olarak saklanmasıyla ilgili olası bir artıları veya profesyonelleri öngörüyor musunuz?


Artıları:

  • Yük kez her yerde kullanın.

Eksileri:

  • Daha yığın kullanılan?

Benim "Yazı Biçimi" cacher:

public static synchronized Typeface getFontType (String fontFile) 
{ 
    if (!smTypefaces.contains(fontFile)) { 
     try { 
      Typeface tf = Typeface.createFromAsset(getContext().getAssets(), "fonts/"+fontFile); 
      if (null != tf) { 
       // todo use maybe a weak reference? 
       smTypefaces.put(fontFile, tf); 
      } 
     } catch (RuntimeException e) { 
      e.printStackTrace(); 
     } 
    } 

    return smTypefaces.get(fontFile); 
} 

cevap

2

ben tam olarak bunu ve bir ilişkili bellek sorunu olmadı. FontProvider adlı bir sınıf oluşturdum, bu tembel, anahtarın bir dizge sabiti olduğu ve değerin Typeface örneğinin olduğu statik bir Map yükler. Haritayı haritada bulunmuyorsa null döndüren get (String key) yöntemiyle haritayı açığa çıkarırım.

+0

Bu fikri beğeniyorum! Evet, kesinlikle ek bellek hakkında çok fazla endişelenmem. - Endişelenmem gereken bir farkın olduğundan gerçekten şüphe duyuyorum ve gerçekten de kolaylık buna değer. – kcoppock

+0

Cevabınız için teşekkür ederiz. Evet, herhangi bir bellek problemi yok. Bir Typeface nesnesini yeniden kullanmanın, metinle ilgili garip bir şeyin olmasına neden olabileceğinden endişeliydim. – Jona

+0

Bu yayında daha fazla cevap yok. Zenginlerin önerisini zaten yapıyordum ama bu cevabı ben yapıyorum. – Jona

İlgili konular