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ş:
Nasıl HTML5 Tuval öğesi özel yazı tipl...
Nasıl js veya jQuery ile ajax isteği i...
Nasıl diyebilir miyim ::std::make_shar...
Nasıl özel yöntemleri, alanları veya i...
Nasıl bir Android projesinde dış Kavan...