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

  • DONFANTASTICKYPESS

    DONFANTASTIC

    1 Temmuz 2007
  • Māris Zaharovs

    Māris Zahar

    28 Mayıs 2008
  • Shameless Maya

    Shameless Ma

    24 Mayıs 2012