opa, tudo bom.
legal essa ideia de isolar os fvbi no ViewHolder, fiz aqui mas não resolveu o problema da lentidão, o app roda todas as activities normalmente, liso, inclusive carreganto foto, mas a lista contendo dois text views e uma imageView por item da lista continua lenta para carregar, ta demorando cerca de 10s para carregar a activity da lista enquanto fica tudo travado, (estou rodando direto no celular).
agradeço a ajuda.
public class AlunosAdapter extends BaseAdapter {
private final List alunos;
private final Context context;
private ViewHolder holder;
public AlunosAdapter(Context context, List alunos) {
this.context = context;
this.alunos = alunos;
}
@Override
public int getCount() {
return alunos.size();
}
@Override
public Object getItem(int position) {
return alunos.get(position);
}
@Override
public long getItemId(int position) {
return alunos.get(position).getId();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Aluno aluno = alunos.get(position);
LayoutInflater inflater = LayoutInflater.from(context);
View view;
if(convertView == null) {
view = inflater.inflate(R.layout.list_item, parent, false);
holder = new ViewHolder(view);
view.setTag(holder);
}else{
view = convertView;
holder = (ViewHolder) view.getTag();
}
holder.campoNome.setText(aluno.getNome());
holder.campoTelefone.setText(aluno.getTelefone());
String caminhoFoto=aluno.getCaminhoFoto();
if(caminhoFoto!=null) {
Bitmap bitmap = BitmapFactory.decodeFile(caminhoFoto);
Bitmap bitmapReduzido = Bitmap.createScaledBitmap(bitmap, 100, 100, true);
holder.campoFoto.setImageBitmap(bitmapReduzido);
holder.campoFoto.setScaleType(ImageView.ScaleType.FIT_XY);
}
return view;
}
}
public class ViewHolder {
public TextView campoNome;
public TextView campoTelefone;
public ImageView campoFoto;
public ViewHolder(View view){
campoNome = (TextView) view.findViewById(R.id.list_nome);
campoTelefone = (TextView)view.findViewById(R.id.list_telefone);
campoFoto = (ImageView) view.findViewById(R.id.list_foto);
}
}