1
resposta

Melhor meio para criar uma lista de imagens

Olá, estou estudando o Android Studio e queria fazer uma espécie de "galeria, coleção" onde exibisse imagens, de produtos, por exemplo e que eu pudesse selecionar ou dar check nas desejadas. Qual o melhor componente para isso?

1 resposta

Olá Edison! Fico feliz em saber que está estudando o Android Studio. Para criar uma lista de imagens no Android, você pode utilizar o componente RecyclerView. Ele é bastante flexível e permite exibir uma lista de itens de forma eficiente, além de ter um ótimo suporte para imagens.

Para utilizar o RecyclerView, você precisa criar um Adapter que irá fornecer os dados para a lista e um ViewHolder que irá armazenar a referência para os elementos da lista. Além disso, você pode utilizar uma biblioteca de carregamento de imagens, como o Glide ou o Picasso, para exibir as imagens de forma assíncrona e evitar que a interface do usuário fique travada.

Aqui está um exemplo básico de como utilizar o RecyclerView:

public class ImageAdapter extends RecyclerView.Adapter<ImageAdapter.ViewHolder> {
    private List<String> mImages;

    public ImageAdapter(List<String> images) {
        mImages = images;
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.image_item, parent, false);
        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        String imageUrl = mImages.get(position);
        Glide.with(holder.itemView.getContext())
                .load(imageUrl)
                .into(holder.imageView);
    }

    @Override
    public int getItemCount() {
        return mImages.size();
    }

    public static class ViewHolder extends RecyclerView.ViewHolder {
        public ImageView imageView;

        public ViewHolder(View itemView) {
            super(itemView);
            imageView = (ImageView) itemView.findViewById(R.id.image_view);
        }
    }
}

Espero ter ajudado e bons estudos!