Viewpager 中的 Font Awesome 上一个 下一个

Font Awesome in Viewpager Previous Next

我正在尝试将 Font Awesome Arrows 设置为 'previous' 和 'next' 而不是我的页面标题。我该如何做到这一点?我知道如何手动添加单词,现在如何将其更改为 strings.xml 中定义的引用箭头?

        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;
            }

为了将任何自定义样式直接应用于文本序列(而不是在视图上设置),您可以将字符串包装在 Span 中。不幸的是,该框架没有接受 Typeface 对象的内置 span 对象(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;
}