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

  • Android Police

    Android Poli

    21 NİSAN 2010
  • andyabc45

    andyabc45

    1 Mayıs 2011
  • The Scary Snowman

    The Scary Sn

    1 ŞUBAT 2011