有什么方法可以加快我的应用程序中字体的更改速度?
我有一个ListView
从在线 XML 加载它的列表。一切都很好,但我需要从我的资产文件夹中将其字体更改为自定义字体。
当我申请时:
TxEventName = (TextView)row.findViewById(id.eventNameTx);
TxEventName.setText(getEventsCount(position));
TxEventName.setTypeface(Utilities.textFont(this.getContext()));
它变得很慢,因为我应用了setTypeface
.
有时它会先加载 UI 布局然后加载列表,有时它只是一个延迟的黑屏,然后当下一个活动出现时,列表已经存在。
我什AsyncTask
至用来加载列表的值,类似于:
private class initList extends AsyncTask<Void, Void, Void>{
@Override
protected Void doInBackground(Void... params) {
SimpleDateFormat formatterc;
Date xdatec=null;
formatterc = new SimpleDateFormat("dd/MM/yy");
try {
xdatec = (Date)formatterc.parse(date);
SimpleDateFormat frmtr = new SimpleDateFormat(dateTemplateForChecking);
selectedDate = frmtr.format(xdatec).toString();
} catch (ParseException e) {
e.printStackTrace();
}
for(int i = 0; i < XMLParser.ppEvents.size(); i++) {
EventsObj evObj = XMLParser.ppEvents.get(i);
for(int j = 0; j < evObj.date.size(); j++) {
if(selectedDate.equalsIgnoreCase(evObj.date.get(j))) {
StringBuilder sbldr = new StringBuilder();
sbldr.append(evObj.act_id);
sbldr.append("!");
if (SelectLanguage.lang == "ENG"){
sbldr.append(evObj.name_en);
} else if (SelectLanguage.lang == "TCH"){
sbldr.append(evObj.name_tc);
} else if (SelectLanguage.lang == "SCH"){
sbldr.append(evObj.name_sc);
}
mainEvents.add(sbldr.toString());
eventID.add(Integer.toString(evObj.act_id));
}
}
}
adapter = new events_adapter(PublicProg.this, layout.events_adapter, id.eventNameTx, mainEvents);
return null;
}
protected void onPostExecute(Void result){
eventList.setAdapter(adapter);
}
protected void onPreExecute(){
Bundle ext = getIntent().getExtras();
position = ext.getString("position");
date = ext.getString("date");
mainEvents = new ArrayList<String>();
eventID = new ArrayList<String>();
}
}