【发布时间】:2013-07-15 15:37:00
【问题描述】:
问题:我有 X 数量的 ImageView,我正在像这样动态添加:
for (int i=2; i < result.size(); i++) {
// instantiate image view
ImageView mImageView = new ImageView(this);
mImageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
mImageView.setBackgroundResource(R.drawable.selectable_background_theme);
mImageView.setOnClickListener(this);
// download image and display it
mImageLoader.get(result.get(i), ImageLoader.getImageListener(mImageView, R.drawable.ic_logo, R.drawable.ic_action_refresh));
// add images to container view
mLlDescContent.addView(mImageView);
}
希望能够单击图像并将其全屏显示在另一个活动中。我已经阅读了几种方法,例如传递 Uri 或将实际位图作为字节数组传递。
问题:如何获取 Uri 或使用 Volley ImageLoader 下载的实际位图。 LruCache 我正在使用我在这里找到的 BitmapLruCache:Android Volley ImageLoader - BitmapLruCache parameter?。有人可以帮助我解决这个问题或任何想法来实现我的目标。
我在上面的代码之后尝试了这个,没有:
Bitmap mBitmap = VolleyInstance.getBitmapLruCache().getBitmap(result.get(2));
mIvAuthorImg.setImageBitmap(mBitmap);
编辑:如果我重新请求图片:
mImageLoader.get(result.get(i), ImageLoader.getImageListener(mImageView, R.drawable.ic_logo, R.drawable.ic_action_refresh));
图像是从缓存中加载的,但是如果我尝试直接从缓存中访问图像:
Bitmap mBitmap = VolleyInstance.getBitmapLruCache().getBitmap(result.get(2));
mIvAuthorImg.setImageBitmap(mBitmap);
图片无法加载。我希望能够操纵图像,例如在将其传递给下一个活动之前调整其大小。
【问题讨论】:
-
你不是已经有了第一次下载图片时的url吗?
-
是的,结果是一个包含所有图片 url 的 ArrayList
。 -
好的,如果你有 url 列表,那到底是什么问题?
-
我想在使用 volley ImageLoader 下载后从缓存中检索图像。 getBitmap(url) 似乎不起作用。如果它已经被缓存,我不想重新下载它。我想从缓存中获取位图,然后将位图传递给下一个活动。
-
如果图像存在于缓存中,我相信图像将从缓存中启动,而不是再次下载图像。你检查过这不是已经发生的吗?这就是其他用于图像下载的库的工作方式。
标签: android bitmap android-imageview android-volley