2015-02-24 75 views
2

我試圖將Font Awesome箭頭設置爲'上一個'和'下一個',而不是我的頁面標題。我該如何做到這一點?我知道如何手動添加單詞,現在如何將其更改爲在我的strings.xml中定義的引用箭頭?Viewpager中的字體真棒上一頁下一頁

 Typeface font = Typeface.createFromAsset(getAssets(), "fonts/fontawesome-webfont.ttf"); 
     @Override 
     public String getPageTitle(int position) { 

       if (position == current_position - 1) { 
        String title = "Previous"; 
        return title; 
       } else if (position == current_position + 1) { 
        String title = "Next"; 
        return title; 
       } 
      return title; 
     } 

對於未來的讀者,這是根據所提供的答案是什麼工作:

final Typeface font = Typeface.createFromAsset(getAssets(), "fonts/fontawesome-webfont.ttf"); 
      @Override 
      public CharSequence getPageTitle(int position) { 
      String title = ""; 
       if (position == current_position - 1) { 
       title = "\uf137"; 
       SpannableStringBuilder styled = new SpannableStringBuilder(title); 
       styled.setSpan(new CustomTypefaceSpan("", font), 0, title.length(), Spannable.SPAN_EXCLUSIVE_INCLUSIVE); 
       //Previous 
       return styled; 

      } else if (position == current_position + 1) { 
       //Next 
       title = "\uf138"; 
       SpannableStringBuilder styled = new SpannableStringBuilder(title); 
       styled.setSpan(new CustomTypefaceSpan("",font), 0, title.length(), Spannable.SPAN_EXCLUSIVE_INCLUSIVE); 
       return styled; 
      } 

回答

1

爲了直接申請任何自定義樣式的文本序列(而不是把它放在視圖),您可以將該字符串包裝在Span中。不幸的是,該框架沒有內置的跨度對象,它接受Typeface對象(代替TypefaceSpan接受字體系列)。

但是,有很多示例(例如this one)用於創建將應用您的自定義類型面的簡單子類。

應用會是這個樣子:

@Override 
public CharSequence getPageTitle(int position) { 
    Typeface font = Typeface.createFromAsset(getAssets(), "fontawesome-webfont.ttf"); 
    String title = ""; 

    if (position == current_position - 1) { 
     title = "\uf137"; 
    } else if (position == current_position + 1) { 
     title = "\uf138"; 
    } 

    SpannableString styled = new SpannableString(title); 
    styled.setSpan(new CustomTypefaceSpan(font), 0, title.length(), Spannable.SPAN_EXCLUSIVE_INCLUSIVE); 

    return styled; 
} 
+0

謝謝!當我回家時我會檢查這個 – Petro 2015-02-24 04:09:39

+0

嗨,這種方法沒有任何回報。 – Petro 2015-02-25 03:52:08

+0

您是否可以對什麼不起作用更具描述性?如果你看不到任何文本,你是否嘗試使用不同的跨度(比如'ScaleXSpan',或者簡單的東西)以確保它不是不正確的跨度定義? – Devunwired 2015-02-25 04:27:38