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

  • Major FX

    Major FX

    6 HAZİRAN 2012
  • THE RED DRAGON

    THE RED DRAG

    6 ŞUBAT 2009
  • xSammyJoe1

    xSammyJoe1

    19 Temmuz 2011