从可绘制资源创建动态缩略图并设置为 imageView
Create dynamic thumbnail image from drawable resource and set to imageView
我是 android 的新手,我正在使用一些可绘制资源图像在 activity 中显示。但我想将该图像缩放到缩略图大小。
我的代码是:
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
参数,它说 thumbImage 是位图类型并且 setImageResource
需要 int
谢谢
你需要在这里改变两件事:
1) BitmapFactory.decodeFile(categoryImagesList[position]), 100, 100)
至 BitmapFactory.decodeResource(getResources(),categoryImagesList[position]);
2) 将 holder.iv.setImageResource(thumbImage);
更改为 holder.iv.setImageBitmap(thumbImage);
我是 android 的新手,我正在使用一些可绘制资源图像在 activity 中显示。但我想将该图像缩放到缩略图大小。
我的代码是:
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
参数,它说 thumbImage 是位图类型并且 setImageResource
需要 int
谢谢
你需要在这里改变两件事:
1) BitmapFactory.decodeFile(categoryImagesList[position]), 100, 100)
至 BitmapFactory.decodeResource(getResources(),categoryImagesList[position]);
2) 将 holder.iv.setImageResource(thumbImage);
更改为 holder.iv.setImageBitmap(thumbImage);