0

我正在使用通用图像视图将图像加载到我的应用程序中。

这是我实施的方法

public static void setBitmapToAImageviewUIL(final ImageView imageView, String uriPath, String imageName)
{
  if(imageName != null && !imageName.equals(""))
  {
     //We use the local image as a temporary placeholder
     DisplayImageOptions options = new DisplayImageOptions.Builder()
           .showStubImage(Utilities.getDrawableResource(imageName))
           .cacheOnDisc()
           .cacheInMemory()
           .imageScaleType(ImageScaleType.EXACTLY)
           .bitmapConfig(Bitmap.Config.ARGB_8888)
           .build();

     imageLoader.displayImage(uriPath, imageView, options);
  }

}

逻辑是这样的:我在drawables中有一些图像。首先,我使用本地可绘制对象作为占位符(showStubImage)。Utilities.getDrawableResource()重新运行可绘制对象。然后下载完成后会显示从服务器下载的图片。

我的问题

用作占位符的临时图像大于从服务器下载的图像。所以起初图像很大,然后当新图像完成下载时它会缩小。如何使它们都与 imageView 的大小完全相同?

我试图避免手动调整代码大小以使它们具有相同的大小。谢谢

PS:获得正确drawable的Utilities.getDrawableResource()用途。getResource().getIdentifier()

4

1 回答 1

1

有几种不同的方法,具体取决于您想要实现的目标以及您预先掌握的信息量。

一种方法是将您的图像视图设置为您的 XML(例如width:match_parent height:144dp)上的确切大小,并让服务器和您的可绘制在其中缩放。

如果您在下载之前可以访问图像服务器的大小,则可以将 imageView 布局参数设置为那些确切的值,并让可绘制对象调整为该值(并且服务器将完全适合)

我认为您可以使用 XML shape drawables 和/或 9patch 使其缩放得更好,但您仍然需要上述两种方法之一。

于 2013-01-11T11:53:18.860 回答