In your custom textview approach, you are creating the Typeface object every time you create a CustomTextView (or change its typeface), while your factory would keep the already loaded ones around in memory and re-use them.
The approach with a custom text view may work fine in some instances, but if you suddenly need to create a lot of them (or change the typeface on a lot of them), it might noticably slow down your performance as in this question with a scrollview.
I'd choose the singleton.