You are creating the same typeface every time you set it.
super.setTypeface(Typeface.createFromAsset(getContext().getAssets(), "BFantezy.ttf"));
Just create it once and reuse it over and over.
This call is heavy and doing it 40 times will surely increase the load time.
public class Text extends Activity {
/** Called when the activity is first created. */
private Static Typeface bf = Typeface.createFromAsset(getContext().getAssets(),
"BFantezy.ttf");
private Static Typeface rn = Typeface.createFromAsset(getContext().getAssets(),
"RoseNewB.ttf")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView tv2=(TextView)findViewById(R.id.text2);
tv2.setText(Html.fromHtml(getString(R.string.text_2)));
tv2.setTypeface(bf);
TextView tv3=(TextView)findViewById(R.id.text3);
tv3.setText(Html.fromHtml(getString(R.string.text_3)));
tv3.setTypeface(rn);
TextView tv4=(TextView)findViewById(R.id.text4);
tv4.setText(Html.fromHtml(getString(R.string.text_4)));
tv4.setTypeface(bf);
TextView tv5=(TextView)findViewById(R.id.text5);
tv5.setText(Html.fromHtml(getString(R.string.text_5)));}
tv5.setTypeface(rn);
...
Custom TextView is a overkill for this purpose. You can remove the code below.
class MyTextView extends TextView {
private String TextView;
private Static Typeface bf = Typeface.createFromAsset(getContext().getAssets(),
"BFantezy.ttf");
private Static Typeface rn = Typeface.createFromAsset(getContext().getAssets(),
"RoseNewB.ttf")
public MyTextView(Context context,int string) {
super(context);
updateTypeface();
}
public MyTextView(Context context) {
super(context);
updateTypeface();
}
private void updateTypeface() {
if (getId() == R.id.text2 || getId() == R.id.text4) {
super.setTypeface(bf);
}
else if (getId() == R.id.text3 || getId() == R.id.text5) {
super.setTypeface(rn);
}
}
}
EDIT: Updated code. Updating typeface automatically.