我正在使用通用图像视图将图像加载到我的应用程序中。
这是我实施的方法
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中有一些图像。首先,我使用局部drawable作为占位符(showStubImage)。 Utilities.getDrawableResource()
重新绘制了drawable。然后,完成下载后,将显示从服务器下载的图像。
我的问题
用作占位符的临时图像大于从服务器下载的图像。因此,首先图像很大,然后当新图像完成下载时,它会缩小。如何使它们与imageView的大小完全相同?
我正在尝试避免手动调整大小代码以使它们具有相同的大小。感谢
PS:Utilities.getDrawableResource()
使用getResource().getIdentifier()
来获取正确的drawable。
答案 0 :(得分:1)
根据您想要达到的目标以及您预先获得的信息,有几种不同的方法。
一种方法是将您的imageview设置为XML上的确切大小(例如width:match_parent
height:144dp
),并将服务器和您的可绘制比例放在其中。
如果您在下载之前可以访问图像服务器大小,则可以将imageView layoutparams设置为精确值,并将drawable调整为大小(并且服务器将完全适合)
我认为你可以使用XML形状drawables和/或9patch来使它更好地扩展,但你仍然需要上述两种方法中的一种。