【发布时间】:2016-06-16 07:17:24
【问题描述】:
如果某些ImageViews与GridView或ListView相关,并且我们想在屏幕上显示一些图像,通常会发生图像的宽度和高度值为零(0),所以它发生了当我们传递这个参数来计算压缩位图时出现异常,我回顾了一些框架,但这对我来说仍然是一个问题。我想获得一些内核解决方案来解决这个问题。当ImageView 的宽度和高度为 0 时我该怎么办。非常感谢任何帮助。
public void loadImage(final ImageView imageView, final String imageUrl){
mExecutor.execute(new PriorityRunnable(mThreadsCount) {
@Override
public void doSomething() {
while(!mExecutor.isPause()){
if(imageView != null && imageView.getTag().equals(imageUrl)){
mImageCache.loadImage(imageView, imageUrl);
}
}
}
});
}
public void loadImage(ImageView imageView, String imageUrl){
//readFromMemoryCache
Bitmap bitmap = getBitmap(imageUrl);
if(bitmap != null){
mImageView = imageView;
mBitmap = bitmap;
mHandler.sendEmptyMessage(DISPLAY_IMAGE);
return;
}
int width = imageView.getWidth();
int height = imageView.getHeight();
//because width = 0, so it doesn't do anything, only return
if(width == 0 || height == 0){
return;
}
//load from http or disk
bitmap = getBitmap(imageUrl, width, height);
if(bitmap != null){
mImageView = imageView;
mBitmap = bitmap;
mHandler.sendEmptyMessage(DISPLAY_IMAGE);
}
}
【问题讨论】:
-
您可以延迟图像的加载,直到布局被测量。请参阅this so entry 了解如何操作。
-
你从哪里得到图像的大小?在 onCreate() 中?
-
我创建一个新线程,并计算图像的大小@Alex Hong