【问题标题】:How to customize Action bar without change api level? [duplicate]如何在不更改 api 级别的情况下自定义操作栏? [复制]
【发布时间】:2014-02-20 23:18:49
【问题描述】:

如何在不更改最低 api 级别 11 的情况下将自定义字体(Kulturista _Bold.ttf)添加到操作栏并将文本颜色更改为#ffffff

【问题讨论】:

    标签: android xml fonts


    【解决方案1】:

    请参阅this,它可能对您有用

    【讨论】:

      【解决方案2】:

      使用您应该具有向后兼容性的支持库。将支持库导入您的工作区,可以在~/adt-bundle-linux-x86_64-20130729/sdk/extras/android/support/v7/appcompact 中找到并在您的项目中使用。并且不要忘记添加支持库,它可以在您的项目中右键单击并输入Android Tools -> Add Support Library

      使用appcompact,您必须使用ActionBarActivity 扩展您的活动类。并且还使用appcompact,您必须在您的样式文件夹中进行更改。你可以参考this。不要忘记更新values-v11values-v14 文件。完成所有这些将使您的应用程序兼容。

      附:如果您的 appcompact 库中出现任何错误。不要惊慌查看错误日志并打开似乎包含错误的文件。很可能您必须刷新文件,然后您只需 fix project properties,错误就会消失。

      对于自定义字体,添加到assets:

      创建一个帮助类来初始化字体:

      public class Utils {
      
           public static Typeface fontsStyle;
      
              public static void TypeFaceOne(TextView tv, AssetManager asm){
      
                  fontsStyle=Typeface.createFromAsset(asm, "fonts/Roboto-Bold.ttf"); 
                  tv.setTypeface(fontsStyle);
              }
      }
      

      最后为actionbar使用自定义视图:

      this.getSupportActionBar().setDisplayShowCustomEnabled(true);
      this.getSupprotActionBar().setDisplayShowTitleEnabled(false);
      
      LayoutInflater inflator = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
      View v = inflator.inflate(R.layout.customabview, null);
      
      //customize text
      Utils.TypeFaceOne(textview, getAssets());
      textview.setTextColor(Color.parseColor("#FFFFFF"));
      this.getSupportActionBar().setCustomView(v);
      

      希望这会有所帮助:)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-04
        • 1970-01-01
        相关资源
        最近更新 更多