Last active
August 29, 2015 14:11
-
-
Save yakivmospan/89936ec089d8bb76236a to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
TextView txt = (TextView) findViewById(R.id.custom_fonts); | |
txt.setTextSize(30); | |
Typeface font = Typeface.createFromAsset(getAssets(), "Akshar.ttf"); | |
Typeface font2 = Typeface.createFromAsset(getAssets(), "bangla.ttf"); | |
SpannableStringBuilder SS = new SpannableStringBuilder("আমারநல்வரவு"); | |
SS.setSpan (new CustomTypefaceSpan("", font2), 0, 4,Spanned.SPAN_EXCLUSIVE_INCLUSIVE); | |
SS.setSpan (new CustomTypefaceSpan("", font), 4, 11,Spanned.SPAN_EXCLUSIVE_INCLUSIVE); | |
txt.setText(SS); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment