2017-08-30 96 views
0

我是新来的android,我正在使用一些可绘制的资源图像显示在活动中。但我想缩放该图像缩略图大小。从可绘制资源创建动态缩略图图像并设置为imageView

我的代码是:

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]); 
    } 
    ... 
    ... 
} 

与图像的实际尺寸这是工作文件,但现在我将其更改为以下

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); 
    } 
    ... 
    ... 
} 

然后ThumbnailUtils.extractThumbnail显示与categoryImagesList[position]参数错误,也holder.iv.setImageResource不接受thumbImage param,它表示thumbImage是Bitmap类型的,并且setImageResource要求int

感谢

+0

变化'holder.iv.setImageResource(thumbImage);'到'holder.iv.setImageBitmap(thumbImage);' – Piyush

回答

1

这里需要改变两件事情:

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

2)改变holder.iv.setImageResource(thumbImage);holder.iv.setImageBitmap(thumbImage);