Я думаю, что вы уже перечислили лучшую практику, и это НЕ использовать, если это НЕОБХОДИМО. Я бы настоятельно рекомендовал более детально проанализировать ваш код, используя инструменты профилирования, если это необходимо для ответа на эти вопросы.
Попробуйте это:
@Override
public View getView (int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
if(getItem(position).equals("site3.com"))
{
// do something change color
view.setBackgroundColor (Color.RED); // some color
}
else
{
// default state
view.setBackgroundColor (Color.WHITE); // default coloe
}
return view;
}