让ActionBar使用assets里的自定义字体

来源:互联网 发布:java string 编码转换 编辑:程序博客网 时间:2024/06/03 19:23

一直想写下技术博客装个逼咳咳。。分享技术,今天终于记得了,记点小东西。。


直接贴代码好了

   SpannableString s = new SpannableString("My Title");   s.setSpan(new TypefaceSpan(this, "你放在assets下的字体文件名"), 0, s.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);   ActionBar actionBar = getActionBar();   actionBar.setTitle(s);

import android.content.Context;import android.graphics.Paint;import android.graphics.Typeface;import android.support.v4.util.LruCache;import android.text.TextPaint;import android.text.style.MetricAffectingSpan;/** * Style a {@link Spannable} with a custom {@link Typeface}. *  * @author Tristan Waddington */public class TypefaceSpan extends MetricAffectingSpan {      /** An <code>LruCache</code> for previously loaded typefaces. */    private static LruCache<String, Typeface> sTypefaceCache =            new LruCache<String, Typeface>(12);     private Typeface mTypeface;     /**     * Load the {@link Typeface} and apply to a {@link Spannable}.     */    public TypefaceSpan(Context context, String typefaceName) {        mTypeface = sTypefaceCache.get(typefaceName);         if (mTypeface == null) {            mTypeface = Typeface.createFromAsset(context.getApplicationContext()                    .getAssets(), String.format("%s", typefaceName));             // Cache the loaded Typeface            sTypefaceCache.put(typefaceName, mTypeface);        }    }     @Override    public void updateMeasureState(TextPaint p) {        p.setTypeface(mTypeface);                // Note: This flag is required for proper typeface rendering        p.setFlags(p.getFlags() | Paint.SUBPIXEL_TEXT_FLAG);    }     @Override    public void updateDrawState(TextPaint tp) {        tp.setTypeface(mTypeface);                // Note: This flag is required for proper typeface rendering        tp.setFlags(tp.getFlags() | Paint.SUBPIXEL_TEXT_FLAG);    }}


这个TypefaceSpan来自

https://gist.github.com/twaddington/b91341ea5615698b53b8

方法来自

http://stackoverflow.com/questions/23424858/how-to-set-a-custom-font-from-the-assets-folder-to-the-title-of-an-actionbar-in


0 0
原创粉丝点击