SORU
27 Ocak 2011, PERŞEMBE


Nasıl özel bir Yazı karakteri ile TypefaceSpan veya StyleSpan kullanabilir miyim?

Bunu yapmak için bir yol bulamadı. Mümkün mü?

CEVAP
28 Ocak 2011, Cuma


Peki kendi başıma TypefaceSpan uzattım yani mevcut sınıflar ile nasıl yapacağımı çözemedim şu anda benim için çalışıyor. Yaptığım şey burada:

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

eğer birisi benzer bir sorunu olan varsa yardımcı olur umarım.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • habpsu

    habpsu

    25 Temmuz 2007
  • Jay Will

    Jay Will

    19 NİSAN 2006
  • WK

    WK

    9 Ocak 2006