2017-08-30 4 views
0

Je suis nouveau à Android, j'utilise une image de ressource drawable à afficher dans l'activité. mais je veux mettre à l'échelle ces images à la taille des vignettes.Créer une image de vignette dynamique à partir de la ressource drawable et définir à imageView

mon code est:

public class CategoryImages extends BaseAdapter { 
    ... 
    ... 
    Integer[] categoryImagesList; 
    public CategoryImages(Context mainActivity, Integer[] categories_images, String selectedCat) { 
     categoryImagesList = {R.drawable.suit_7, R.drawable.bkg_4, R.drawable.misc_18}; 
    } 
    public class Holder { 
     ImageView iv; 
    } 
    public View getView(final int position, View convertView, ViewGroup parent) { 
     Holder holder = new Holder(); 
     View rowView; 
     rowView = inflater.inflate(R.layout.category_image_list, null); 
     holder.iv = (ImageView) rowView.findViewById(R.id.category_img); 
     holder.iv.setImageResource(categoryImagesList[position]); 
    } 
    ... 
    ... 
} 

C'est un fichier de travail avec la taille réelle des images, mais maintenant je le change au-dessous

public class CategoryImages extends BaseAdapter { 
    ... 
    ... 
    Integer[] categoryImagesList; 
    public CategoryImages(Context mainActivity, Integer[] categories_images, String selectedCat) { 
     categoryImagesList = {R.drawable.suit_7, R.drawable.bkg_4, R.drawable.misc_18}; 
    } 
    public class Holder { 
     ImageView iv; 
    } 
    public View getView(final int position, View convertView, ViewGroup parent) { 
     Holder holder = new Holder(); 
     View rowView; 
     rowView = inflater.inflate(R.layout.category_image_list, null); 
     holder.iv = (ImageView) rowView.findViewById(R.id.category_img); 

     Bitmap thumbImage = ThumbnailUtils.extractThumbnail(BitmapFactory.decodeFile(categoryImagesList[position]), 100, 100); 
     holder.iv.setImageResource(thumbImage); 
    } 
    ... 
    ... 
} 

puis ThumbnailUtils.extractThumbnail montrant erreur avec le paramètre categoryImagesList[position] et aussi holder.iv.setImageResource pas acceptant le thumbImage param, il est dit que thumbImage est de type Bitmap et setImageResource nécessite int

grâce

+0

'changement holder.iv.setImageResource (thumbImage);' à 'holder.iv.setImageBitmap (thumbImage);' – Piyush

Répondre

1

Vous devez changer deux choses:

1) BitmapFactory.decodeFile(categoryImagesList[position]), 100, 100) à BitmapFactory.decodeResource(getResources(),categoryImagesList[position]);

2) Changer holder.iv.setImageResource(thumbImage);-holder.iv.setImageBitmap(thumbImage);