我有一个包含 ListView 的活动,该列表是左侧的缩略图和右侧的一些文本,非常像联系人列表。
问题是,缩略图是从 sdcard 的绝对路径加载的,每个图像大小约为 5mb。为了避免内存不足,我在本教程中创建了仅加载图像的缩放版本并且不占用大量内存的类。
嗯,有什么问题?因为,我必须传递我想要调整图像大小的宽度和高度(以 px 为单位),但是对于不同的设备,我在设置绝对值时会遇到问题。所以,我只是尝试通过 args 传递视图,然后在我的类中对其进行操作以获得宽度和高度,不错吧?好的,但它不起作用,因为缩略图还没有被绘制(我猜),我不能接受他的尺寸值。
如何从我的 lisview 适配器获取方法 getView() 中的大小?
/** short passage of getView() method */
ImageView image = (ImageView) view.findViewById(R.id.image_thumb);
Bitmap bMap = BitmapAdjusted.decodeSampleBitmap("/sdcardpath/",
image); // "image" is the view passed by args
image.setImageBitmap(bMap);
这是问题所在:
public static decodeSimpleBitmap(String path, View view){
/** unworth previous code */
int width = view.getWidth(); // always give zero, getMeasuredWidth() too
int height = view.getHeight(); // always give zero
// options is BitmapFactory.Options class, declared before that do the magic
options.inSampleSize = calculateInSampleSize(options, width, height);
}
谢谢!