我正在使用Universal Image Loader库从互联网上下载我的图片。
是否可以在加载图像之前获取图像大小以将布局播放设置为所需的值?
像inJustDecodeBounds
属性,任何想法?
答案 0 :(得分:3)
引用文档@ https://github.com/nostra13/Android-Universal-Image-Loader
UIL如何定义精确ImageView所需的位图大小?它搜索定义的参数?
获取ImageView的实际测量宽度和高度。
获取android:layout_width和android:layout_height参数。
获取android:maxWidth和/或android:maxHeight参数。
从配置中获取最大宽度和/或高度参数(memoryCacheExtraOptions(int,int)选项)。
获取设备屏幕的宽度和/或高度。
因此,如果您知道ImageView的近似最大大小,请尝试设置android:layout_width | android:layout_height 或 android:maxWidth | android:maxHeight参数。它将有助于正确计算此视图所需的位图大小并节省内存。
在下载图像之前无法获取图像的高度和宽度。您可以设置imageview的高度和宽度。
答案 1 :(得分:1)
将图像文件流式传输到BitMap
对象。然后使用getHeight
和getWidth
。
相应地调整视图,然后将BitMap
绘制到它。
答案 2 :(得分:0)
如果图像来自您控制的位置,为什么不具有包含每个图像文件名的XML文件,或者具有以下唯一标识符:
<?xml version="1.0">
<images>
<image filename="image01.png">
<attrs width="400" height="500"/>
</image>
<image filename="image02.png">
<attrs width="700" height="450"/>
</image>
</images>
将此文件存储在图像的相同位置,然后先下载。然后使用存储在XML文件中的宽度和高度设置值。
注意:答案是基于他们是你的图像的假设,正如你所说的“我的图像”。