【发布时间】:2016-07-01 00:52:04
【问题描述】:
我有一个显示一堆图像的列表。我正在使用 Universal Image Loader 将此图像从文件加载到 imageviews。
这些图像具有不同的尺寸,我希望它们都具有相同的宽度但相对于每个图像的纵横比具有不同的高度。
为此,我尝试将以下内容设置为我的图像视图
<ImageView
android:layout_width = "400dp"
android:layout_height="wrap_content"
android:scaleType="centerCrop"
android:adjustViewBounds="true"/>
这种方法的问题是滚动列表视图时会有很多闪烁,因为事先不知道图像视图的高度,并且必须先使用我的宽度来缩放图像以计算每个图像的高度这是纵横比。
如何提前计算每个图像的高度,而不是让 imageview 处理它?
如果我有一个 400 X 700 的图像,并且我希望图像视图为 300 像素宽,我如何使用我的图像尺寸计算图像视图的高度并保持图像纵横比?这可以帮助避免在滚动列表视图时闪烁。
【问题讨论】:
-
你为什么不设置一个固定的高度呢?并使用类似淡入淡入的动画使其更平滑?口粮由 scaleType 参数保存:)
-
@An-droid 我不想设置固定高度。我正在尝试实现 imageview 在后台执行的操作。如果您设置一个固定宽度并将高度设置为 wrap content,它将缩放图像并计算高度。但我想提前计算高度,以便用户在滚动图像时不会看到图像视图的丑陋调整span>
-
在像 Spotify 这样的知名应用程序中,大多数 imageViews 只是设置了固定大小或 matchparent 和 scaleType 设置为 centerCrop。它有什么作用 ?图像将填满您给它的所有空间,并将根据她的身高按比例调整大小。这很好,因为您不知道用户将在哪些设备上使用您的应用程序,以何种密度......使用固定宽度是,我认为非常肮脏和危险
-
@An-droid 你有没有使用过whatsapp或任何可以发送图片的聊天应用程序?图像的大小调整得非常好,即使您发送 20 张图像,您也不会看到 imageview 自己调整大小。一切都很顺利。我正在尝试实现类似的东西
标签: android image android-imageview universal-image-loader