java - Viewpager 中的 Font Awesome 上一个 下一个

标签 java android fonts

我正在尝试将 Font Awesome Arrows 设置为“上一个”和“下一个”而不是我的页面标题。我该如何做到这一点?我知道如何手动添加单词,现在如何将其更改为我的 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;   
        }

对于 future 的读者,这是根据提供的答案起作用的:

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

最佳答案

为了将任何自定义样式直接应用于文本序列(而不是在 View 上设置它),您可以将字符串包装在 Span 中。遗憾的是,该框架没有接受 Typeface 对象的内置 span 对象(TypefaceSpan 接受字体系列)。

但是,有许多示例(例如 this one )可用于创建将应用您的自定义字体的简单子(monad)类。

应用它看起来像这样:

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

关于java - Viewpager 中的 Font Awesome 上一个 下一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28687205/

相关文章:

Javascript获取浏览器的默认字体大小

css - Font Squirrel tumblr 实现/Firefox 问题

java - Android 5 的 jax-rs Jersey 服务器?

java - 通过 GSON 将 Twitter 公共(public)时间线 (JSON) 解析为 Java 对象

java - 在listviewitem中设置颜色

android - Jellybean/ICS Android HTTP Post 方法 + WebView.RestoreState

android - 从 fragment 类主 Activity 调用自定义 ListView 适配器

java - 我在这里遇到堆栈溢出错误,但我不知道为什么

java - 如何在 Camel 中将未编码的对象设置为交换属性

更改字体后的 Android 字体样式不起作用