读书人

施用TypefaceSpan

发布时间: 2012-08-09 15:59:22 作者: rapoo

使用TypefaceSpan

package de.myproject.text.style;import android.graphics.Paint;import android.graphics.Typeface;import android.text.TextPaint;import android.text.style.TypefaceSpan;    public class CustomTypefaceSpan extends TypefaceSpan {        private final Typeface newType;        public CustomTypefaceSpan(String family, Typeface type) {            super(family);            newType = type;        }        @Override        public void updateDrawState(TextPaint ds) {            applyCustomTypeFace(ds, newType);        }        @Override        public void updateMeasureState(TextPaint paint) {            applyCustomTypeFace(paint, newType);        }        private static void applyCustomTypeFace(Paint paint, Typeface tf) {            int oldStyle;            Typeface old = paint.getTypeface();            if (old == null) {                oldStyle = 0;            } else {                oldStyle = old.getStyle();            }            int fake = oldStyle & ~tf.getStyle();            if ((fake & Typeface.BOLD) != 0) {                paint.setFakeBoldText(true);            }            if ((fake & Typeface.ITALIC) != 0) {                paint.setTextSkewX(-0.25f);            }            paint.setTypeface(tf);        }    }

读书人网 >移动开发

热点推荐