WISHY
WISHY

Reputation: 11999

Stroke in textview text android?

I need to style the text for textview as per the below image

TEXT VIEW FONT

The font being used is CARTER ONE font

This is my textview class

public class CustomTextViewCarter extends TextView {
private static Typeface mTypeface;
public CustomTextViewCarter(final Context context) {
    this(context, null);
}

public CustomTextViewCarter(final Context context, final AttributeSet attrs) {
    this(context, attrs, 0);

}

public CustomTextViewCarter(final Context context, final AttributeSet attrs, final int defStyle) {
    super(context, attrs, defStyle);
    if (!isInEditMode()) {
        if (mTypeface == null) {
            mTypeface = Typeface.createFromAsset(context.getResources().getAssets(), "carter_one.ttf");
        }
        setTypeface(mTypeface);
    }
}

}

But the the same kind of text doesn't appear. How can it be done?

Upvotes: 0

Views: 1984

Answers (2)

Jenisha Makadiya
Jenisha Makadiya

Reputation: 832

Use this code for show custom TextView Step-1: CustomTextView.java

public class CustomTextView extends TextView {
    private static final String TAG = "TextView";

    public CustomTextView(Context context) {
        super(context);
    }

    public CustomTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
        setCustomFont(context, attrs);
    }

    public CustomTextView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        setCustomFont(context, attrs);
    }

    private void setCustomFont(Context ctx, AttributeSet attrs) {
        TypedArray a = ctx.obtainStyledAttributes(attrs,R.styleable.CustomTV);
        String customFont = a.getString(R.styleable.CustomTV_customFont);
        setCustomFont(ctx, customFont);
        a.recycle();
    }

    public boolean setCustomFont(Context ctx, String asset) {
        Typeface tf = null;
        try {
        tf = Typeface.createFromAsset(ctx.getAssets(), asset);  
        } catch (Exception e) {
            Log.e(TAG, "Could not get typeface: "+e.getMessage());
            return false;
        }

        setTypeface(tf);  
        return true;
    }

}

Step-2: After that write below code in your styles.xml file

<declare-styleable name="CustomTV">
        <attr name="customFont" format="string"></attr>
</declare-styleable>

Step-3: Use CustomTextView in your xml file Here com.app.demo is my package name.. use your package name instead of that,

<com.app.demo.CustomTextView
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:id="@+id/title"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:text="hello"
     android:textColor="@color/text"
     android:textStyle="bold"
     app:customFont="carter_one.ttf" />

Upvotes: 1

Stanley Ko
Stanley Ko

Reputation: 3497

Try this. You can set ttf by making your own textview implementation. It will works above API 15 (Ice cream sandwich).

https://stackoverflow.com/a/5185587/850347

 <com.lht.ui.MyTextView
    android:text="Hello friends"
    lht:ttf_name="ITCBLKAD.TTF"
    />   

Upvotes: 0

Related Questions